ZGlmZiAtLWdpdCBhLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMDkvOGY0MDYwOTczNWRkOGEyNWIxZDk0MzllZmEyYjhkNWRjNGZkZGUwNDMwZTRiMjgxNDRmNjFjMjE1MDI2YTggYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA2L2QyNmRmN2Y5MzgwNzMwNmZiMDUzODRkYThjMTg0NmQ5MTlmYzZjYzk4MGVjY2EyZDZkZTg2NGMwMWZkYmM3CnNpbWlsYXJpdHkgaW5kZXggODUlCmNvcHkgZnJvbSAuamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4CmNvcHkgdG8gLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wNi9kMjZkZjdmOTM4MDczMDZmYjA1Mzg0ZGE4YzE4NDZkOTE5ZmM2Y2M5ODBlY2NhMmQ2ZGU4NjRjMDFmZGJjNwppbmRleCBmNjMxZTRiLi4zOGM5NzhmIDEwMDY0NAotLS0gYS8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4CisrKyBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMDYvZDI2ZGY3ZjkzODA3MzA2ZmIwNTM4NGRhOGMxODQ2ZDkxOWZjNmNjOTgwZWNjYTJkNmRlODY0YzAxZmRiYzcKQEAgLTEsNDYgKzEsNDAgQEAKLQQISSICcj08ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CisECEkiAqE+PGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgogICAgIDxoMSBpZD0iaW50cm9kdWN0aW9uIj5Bbm5vdW5jaW5nIEFwYWNoZSZuYnNwO1dpY2tldCZuYnNwOzg6IFdyaXRlIExlc3MsIEFjaGlldmUgTW9yZTwvaDE+CisgICAgPGRpdj4KKyAgICAgIDxpbWcgc3JjPSIvaW1nL2xvZ28uc3ZnIiBhbHQ9IkFwYWNoZSBXaWNrZXQiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiAvPgorICAgIDwvZGl2PgogICAgIDxwPgotICAgICAgVGhlIEFwYWNoZSBXaWNrZXQgcHJvamVjdCBhbm5vdW5jZXMgdGhlIDh0aCBtYWpvciByZWxlYXNlIG9mIHRoZSBvcGVuIHNvdXJjZSBKYXZhIHdlYiBmcmFtZXdvcmsgc2VydmljaW5nIHdlYnNpdGVzIGFuZCBhcHBsaWNhdGlvbnMgYWNyb3NzIHRoZSBnbG9iZSBmb3Igb3ZlciBhIGRlY2FkZS4gV2l0aCB0aGlzIHJlbGVhc2UgV2lja2V0IGVtYnJhY2VzIEphdmEgOCBpZGlvbXMgZnVsbHksIGFsbG93aW5nIHRoZSB1c2Ugb2YgbGFtYmRhIGV4cHJlc3Npb25zIGluIGFsbCB0aGUgcmlnaHQgcGxhY2VzLiBXaXRoIFdpY2tldCA4IHlvdSBjYW4gd3JpdGUgZmV3ZXIsIGZhc3RlciBhbmQgbW9yZSBtYWludGFpbmFibGUgY29kZS4KKyAgICAgIFRoZSBBcGFjaGUgV2lja2V0IHByb2plY3QgYW5ub3VuY2VzIHRoZSA5dGggbWFqb3IgcmVsZWFzZSBvZiB0aGUgb3BlbiBzb3VyY2UgSmF2YSB3ZWIgZnJhbWV3b3JrIHNlcnZpY2luZyB3ZWJzaXRlcyBhbmQgYXBwbGljYXRpb25zIGFjcm9zcyB0aGUgZ2xvYmUgc2luY2UgMjAwNC4gQnVpbHQgb24gdG9wIG9mIEphdmEgMTEsIHRoaXMgdmVyc2lvbiBvZiBXaWNrZXQgYnJpbmdzIHdlYiBkZXZlbG9wbWVudCBpbnRvIHRoZSBtb2Rlcm4gSmF2YSB3b3JsZCwgb2ZmZXJpbmcgYSBmdW5kYW1lbnRhbCB0b29sIHRvIGtlZXAgeW91IGNvZGUgdXAgdG8gZGF0ZSB3aXRoIEphdmEgZXZvbHV0aW9uLgogICAgIDwvcD4KIDwvZGl2PgogPGRpdiBjbGFzcz0ibC1maXJzdCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+Ci0gICAgPGgzPkEgQ2FyZWZ1bCBBcHBsaWNhdGlvbiBvZiBKYXZhIDg8L2gzPgotCisgICAgPGgzPkJyaW5nIHRoZSB3ZWIgaW50byB0aGUgbW9kZXJuIEphdmEgZXJhPC9oMz4KICAgICA8cD4KLSAgICAgIFdoaWxlIHByZXZpb3VzIHZlcnNpb25zIG9mIFdpY2tldCB3b3JrIHdlbGwgd2l0aCBKYXZhIDggYW5kIGJleW9uZCwgdGhlIFdpY2tldCBBUEkgd2FzIG5vdCBvcHRpbWl6ZWQgdG8gbWFrZSBmdWxsIHVzZSBvZiBKYXZhIDggaWRpb21zLiBBZnRlciBjYXJlZnVsIGNvbnNpZGVyYXRpb24gYW5kIHRyeWluZyBtYW55IHBhdGhzIHRvIGFkb3B0IG5ldyB3YXlzIG9mIGNvbWJpbmluZyBKYXZhIDggYW5kIFdpY2tldCwgd2UgZmluYWxseSBzZXR0bGVkIG9uIHRoZSBjdXJyZW50IEFQSS4KKyAgICAgVGhlIHJlbGVhc2Ugb2YgSmF2YSA5IGhhcyBiZWVuIGEgdHVybmluZyBwb2ludCBpbiBKYXZhIGhpc3Rvcnkgd2hpY2ggbGFpZCB0aGUgZm91bmRhdGlvbiBmb3IgdGhlIG1vZGVybiBKYXZhIGVyYS4gSG93ZXZlciwgdGhlIG1hZ25pdHVkZSBvZiB0aGlzIGNoYW5nZSBoYXMgZGlzY291cmFnZSBtYW55IGRldmVsb3BlcnMgZnJvbSBsZWF2aW5nIHRoZSBzYWZlIGhhcmJvciByYXBwcmVzZW50ZWQgYnkgSmF2YSA4LiBXaXRoIFdpY2tldCA5IHdlIGZpbmFsbHkgaGF2ZSBhIGZ1bmRhbWVudGFsIHRvb2wgdG8gbW92ZSBvbiBhbmQgYnJpbmcgb3VyIHdlYiBhcHBsaWNhdGlvbiBpbnRvIHRoZSBuZXcgSmF2YSB3b3JsZC4gIAogICAgIDwvcD4KICAgICA8cD4KLSAgICAgIEphdmEgOOKAmXMgbmV3IGlkaW9tcyBhbmQgdHlwZXMgaGF2ZSBiZWVuIGFwcGxpZWQgdGhyb3VnaG91dCBXaWNrZXTigJlzIEFQSS4gTGVhcm4gbW9yZSBhYm91dCB0aGUgZGV0YWlscyBiZWxvdy4KKyAgICAgIFdpdGggdGhpcyB2ZXJzaW9uIFdpY2tldCBoYXMgYmVlbiBjb21wbGV0ZWQgcmV2aXNpdGVkIGFuZCBpbXByb3ZlZCB0byBlbWJyYWNlIG5ldyB0ZWNobm9sb2dpZXMgbGlrZSBKYXZhIG1vZHVsYXJpemF0aW9uIGFuZCBuZXcgbGlicmFyeSBsaWtlIEpVbml0IDUuCiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KLSAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgotICAgIDxoMz5KYXZhIDgrIFJlcXVpcmVkPC9oMz4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+U3RheSB1cCB0byBkYXRlIHdpdGggSmF2YSByZWxlYXNlIGN5Y2xlPC9oMz4KICAgICA8cD4KLSAgICAgIFN0YXJ0aW5nIHdpdGggV2lja2V0IDggdGhlIG1pbmltdW0gcmVxdWlyZWQgdmVyc2lvbiBvZiBKYXZhIGlzIEphdmEgOC4gQWxsIFdpY2tldCBzdXBwbGllZCBwcm9qZWN0cyBoYXZlIGJlZW4gdXBncmFkZWQgdG8gSmF2YSA4IGFuZCBXaWNrZXQgOCwgYW5kIHNob3J0bHkgYWxsIGFjdGl2ZSBjb21tdW5pdHkgcHJvamVjdHMsIHN1Y2ggYXMgV2lja2V0IFN0dWZmLCB3aWxsIGZvbGxvdyBzdWl0LgotICAgIDwvcD4KLSAgICA8cD4KLSAgICAgIFdpdGggdGhlIGFkb3B0aW9uIG9mIEphdmEgOCB3ZSB3ZXJlIGFibGUgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciBMYW1iZGFzLgorICAgICAgV2l0aCBKYXZhIHJlbGVhc2luZyBhdCBhIGZhc3RlciBwaGFzZSBpdCdzIGltcG9ydGFudCB0byBrZWVwIGEgbGlicmFyeSB1cCB0byBkYXRlIHdpdGggdGhlIGxhc3Rlc3QgY2hhbmdlcyBpbnRyb2R1Y2VkIGluIHRoZSBwbGF0Zm9ybSBhbmQgZW5zdXJlIGl0IHdvcmtzIHdpdGggdGhlIGxhdGVzdCBKYXZhIHJlbGVhc2UuIFdpY2tldCBkb2VzIGFsbCBvZiB0aGlzIGJ5IHRha2luZyBwYXJ0IHRvIHRoZSBbT3BlbkpESyBRdWFsaXR5IE91dHJlYWNoXShodHRwczovL3dpa2kub3Blbmpkay5qYXZhLm5ldC9kaXNwbGF5L3F1YWxpdHkvUXVhbGl0eStPdXRyZWFjaCksIGFuIGluaXRpYXRpdmUgYWltZWQgdG8gdGVzdCBwb3B1bGFyIE9wZW4gU291cmNlIHByb2plY3RzIHdpdGggYm90aCB0aGUgbGF0ZXN0IE9wZW5KREsgcmVsZWFzZSBhbmQgdGhlIEVhcmx5IEFjY2VzcyByZWxlYXNlLgogICAgIDwvcD4KICAgPC9kaXY+Ci0gIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KLSAgICA8aDM+U2VydmxldCAzLjEgUmVxdWlyZWQ8L2gzPgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz4gQmUgcmVhZHkgZm9yIHRoZSBuZXh0IEphdmEgRW50ZXJwcmlzZTwvaDM+CiAgICAgPHA+Ci0gICAgICBBcyBvZiBXaWNrZXQgOCB3ZSBvbmx5IHN1cHBvcnQgdGhlIEphdmEgU2VydmxldCBBUEkgMy4xIChvciBuZXdlcikuIFRoaXMgbWVhbnMgdGhhdCB0byBydW4gYXBwbGljYXRpb25zIGJ1aWx0IHVzaW5nIFdpY2tldCA4IHlvdSBoYXZlIHRvIHJ1biB5b3VyIGFwcGxpY2F0aW9uIGluIGEgbW9kZXJuIHNlcnZlciBsaWtlIFRvbWNhdCA4LngsIEpldHR5IDkuMSsgb3IgYSBKYXZhIEVFIDcgY29tcGF0aWJsZSBzZXJ2ZXIuCi0gICAgPC9wPgotICA8L2Rpdj4KLSAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgotICAgIDxoMz5KYXZhIERhdGUvVGltZSBBUEk8L2gzPgotICAgIDxwPgotICAgICAgV2lja2V0IDggcHJvdmlkZXMgb3V0LW9mLXRoZS1ib3ggc3VwcG9ydCBmb3IgdGhlIG5ldyB0eXBlcyBmb3IgaGFuZGxpbmcgZGF0ZXMgaW4gSmF2YSA4LiBUaGVzZSBjYW4gYmUgY29udmVydGVkLCB2YWxpZGF0ZWQgYW5kIGJvdW5kIHRvIGNvbXBvbmVudHMuCisgICAgIFNob3J0bHkgYWZ0ZXIgSmF2YSA5IHdhcyByZWxlYXNlZCwgT3JhY2xlIHN1Ym1pdHRlZCBKYXZhIEVFIHRvIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24uIEFzIHNpZGUgZWZmZWN0IG9mIHRoaXMgb3duZXIgY2hhbmdlLCB0aGUgcGFja2FnZSBuYW1lICdqYXZheCcgaGFkIHRvIGJlIG1pZ3JhdGUgdG8gJ2pha2FydGEnLiBXaWNrZXQgaGlzdG9yaWNhbGx5IHByb21vdGVkIGRlY3VwbGluZyBiZXR3ZWVuIEphdmEgRUUgQVBJcyBhbmQgYXBwbGljYXRpb24gY29kZSwgaGVuY2UgbWFraW5nIG11Y2ggbW9yZSBlYXNpZXIgdGhlIHRyYW5zaXRpb24gdG8gdGhlIGZ1dHVyZSBKYXZhIEVudGVycHJpc2UgdmVyc2lvbnMuIAogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorCis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtdHdvLXRoaXJkIj4KICAgICA8aDM+TGFtYmRhcyBpbiBBbGwgVGhlIFJpZ2h0IFBsYWNlczwvaDM+CiAgICAgPHA+CkBAIC01Miw3ICs0Niw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgzPk9wdGlvbmFsIGlzIFNvbWV0aW1lcyBSZXF1aXJlZDwvaDM+CiAgIDwvZGl2PgpAQCAtOTEsNyArODUsNyBAQAogICA8L2Rpdj4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDM+TW9kZWxzIGFzIEZ1bmN0aW9uYWwgSW50ZXJmYWNlPC9oMz4KICAgICA8cD4KQEAgLTExOCw3ICsxMTIsNyBAQAogICA8L2Rpdj4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KICAgICA8aDM+Tm8gUmV3cml0ZSBOZWNlc3Nhcnk8L2gzPgogICAgIDxwPgpAQCAtMTQxLDcgKzEzNSw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgyPkdldHRpbmcgU3RhcnRlZCB3aXRoIFdpY2tldCA4PC9oMj4KICAgICA8cD4KQEAgLTE4OCw3ICsxODIsNyBAQAogICAgIHdlYiBhcHBsaWNhdGlvbi48L3A+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aW1nIHNyYz0iL2ltZy9qYXZhLXdpY2tldC1odG1sNS5wbmciIGNsYXNzPSJsLWZ1bGwiIC8+CiAgICAgICAgIDxoMz5KdXN0IEphdmEgJmFtcDsgSFRNTDwvaDM+CkBAIC0yMTIsNyArMjA2LDcgQEAKICAgICAgICAgb2YgYmFzaWMgQWpheCBjb21wb25lbnRzLjwvcD4KICAgICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aDM+T3BlbiBTb3VyY2Ugd2l0aCBBcGFjaGUgTGljZW5zZTwvaDM+CiAgICAgICAgIDxwPlNpbmNlIGl0cyBpbmNlcHRpb24gaW4gMjAwNCBXaWNrZXQgaGFzIGJlZW4gYW4gb3BlbiBzb3VyY2UKQEAgLTIzNCw3ICsyMjgsNyBAQAogICAgICAgICBwYWdlLCBvciBldmVuIGNvbXBvbmVudCBsZXZlbC48L3A+CiAgICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGgzPk11bHRpLXRhYiBhbmQgd2luZG93IHN1cHBvcnQ8L2gzPgogICAgICAgICA8cD5ObyBtb3JlIHBhaW4gd2hpbGUga2VlcGluZyB0YXBzIG9uIG11bHRpcGxlIHRhYnMgYW5kIHdpbmRvd3MuIApAQCAtMjUxLDcgKzI0NSw3IEBACiAgICAgICAgIGZpbGUuPC9wPgogICAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxoMz5UZXN0IHlvdXIgcGFnZXMgYW5kIGNvbXBvbmVudHM8L2gzPgogICAgICAgICA8cD5XaXRoIFdpY2tldFRlc3RlciB5b3UgY2FuIGFjaGlldmUgdGVzdGluZyBjb3ZlcmFnZSB5b3VyIFFBIApAQCAtMjc0LDQgKzI2OCw2IEBACiA8L2Rpdj4KIDxkaXYgY2xhc3M9ImwtZmlyc3QiPgogPC9kaXY+Cis8aHIgLz4KKwogBjoGRVQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4IGIvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wYi8yOWMwZWJiNDQyODllYTE4YjdmM2NlZWVmYTE0ZGRjZTY3YTljNzgxYTE2ZDgzZjEwMzk5NTA0MGUyYjNjYwpzaW1pbGFyaXR5IGluZGV4IDk0JQpjb3B5IGZyb20gLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOApjb3B5IHRvIC5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMGIvMjljMGViYjQ0Mjg5ZWExOGI3ZjNjZWVlZmExNGRkY2U2N2E5Yzc4MWExNmQ4M2YxMDM5OTUwNDBlMmIzY2MKaW5kZXggZjYzMWU0Yi4uZDFmZWJhZCAxMDA2NDQKLS0tIGEvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOAorKysgYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzBiLzI5YzBlYmI0NDI4OWVhMThiN2YzY2VlZWZhMTRkZGNlNjdhOWM3ODFhMTZkODNmMTAzOTk1MDQwZTJiM2NjCkBAIC0xLDcgKzEsMTAgQEAKLQQISSICcj08ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CisECEkiAhA+PGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgogICAgIDxoMSBpZD0iaW50cm9kdWN0aW9uIj5Bbm5vdW5jaW5nIEFwYWNoZSZuYnNwO1dpY2tldCZuYnNwOzg6IFdyaXRlIExlc3MsIEFjaGlldmUgTW9yZTwvaDE+CisgICAgPGRpdj4KKyAgICAgIDxpbWcgc3JjPSIvaW1nL2xvZ28uc3ZnIiBhbHQ9IkFwYWNoZSBXaWNrZXQiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiAvPgorICAgIDwvZGl2PgogICAgIDxwPgotICAgICAgVGhlIEFwYWNoZSBXaWNrZXQgcHJvamVjdCBhbm5vdW5jZXMgdGhlIDh0aCBtYWpvciByZWxlYXNlIG9mIHRoZSBvcGVuIHNvdXJjZSBKYXZhIHdlYiBmcmFtZXdvcmsgc2VydmljaW5nIHdlYnNpdGVzIGFuZCBhcHBsaWNhdGlvbnMgYWNyb3NzIHRoZSBnbG9iZSBmb3Igb3ZlciBhIGRlY2FkZS4gV2l0aCB0aGlzIHJlbGVhc2UgV2lja2V0IGVtYnJhY2VzIEphdmEgOCBpZGlvbXMgZnVsbHksIGFsbG93aW5nIHRoZSB1c2Ugb2YgbGFtYmRhIGV4cHJlc3Npb25zIGluIGFsbCB0aGUgcmlnaHQgcGxhY2VzLiBXaXRoIFdpY2tldCA4IHlvdSBjYW4gd3JpdGUgZmV3ZXIsIGZhc3RlciBhbmQgbW9yZSBtYWludGFpbmFibGUgY29kZS4KKyAgICAgIFRoZSBBcGFjaGUgV2lja2V0IHByb2plY3QgYW5ub3VuY2VzIHRoZSA5dGggbWFqb3IgcmVsZWFzZSBvZiB0aGUgb3BlbiBzb3VyY2UgSmF2YSB3ZWIgZnJhbWV3b3JrIHNlcnZpY2luZyB3ZWJzaXRlcyBhbmQgYXBwbGljYXRpb25zIGFjcm9zcyB0aGUgZ2xvYmUgc2luY2UgMjAwNC4gQnVpbHQgb24gdG9wIG9mIEphdmEgMTEsIHRoaXMgdmVyc2lvbiBvZiBXaWNrZXQgYnJpbmdzIHdlYiBkZXZlbG9wbWVudCBpbnRvIHRoZSBtb2Rlcm4gSmF2YSB3b3JsZCwgb2ZmZXJpbmcgYSBmdW5kYW1lbnRhbCB0b29sIHRvIGtlZXAgeW91IGNvZGUgdXAgdG8gZGF0ZSB3aXRoIEphdmEgZXZvbHV0aW9uLgogICAgIDwvcD4KIDwvZGl2PgogPGRpdiBjbGFzcz0ibC1maXJzdCI+CkBAIC0xNyw3ICsyMCw3IEBACiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgPGgzPkphdmEgOCsgUmVxdWlyZWQ8L2gzPgogICAgIDxwPgpAQCAtNDAsNyArNDMsNyBAQAogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLXR3by10aGlyZCI+CiAgICAgPGgzPkxhbWJkYXMgaW4gQWxsIFRoZSBSaWdodCBQbGFjZXM8L2gzPgogICAgIDxwPgpAQCAtNTIsNyArNTUsNyBAQAogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgogICAgIDxoMz5PcHRpb25hbCBpcyBTb21ldGltZXMgUmVxdWlyZWQ8L2gzPgogICA8L2Rpdj4KQEAgLTkxLDcgKzk0LDcgQEAKICAgPC9kaXY+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgzPk1vZGVscyBhcyBGdW5jdGlvbmFsIEludGVyZmFjZTwvaDM+CiAgICAgPHA+CkBAIC0xMTgsNyArMTIxLDcgQEAKICAgPC9kaXY+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CiAgICAgPGgzPk5vIFJld3JpdGUgTmVjZXNzYXJ5PC9oMz4KICAgICA8cD4KQEAgLTE0MSw3ICsxNDQsNyBAQAogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgogICAgIDxoMj5HZXR0aW5nIFN0YXJ0ZWQgd2l0aCBXaWNrZXQgODwvaDI+CiAgICAgPHA+CkBAIC0xODgsNyArMTkxLDcgQEAKICAgICB3ZWIgYXBwbGljYXRpb24uPC9wPgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGltZyBzcmM9Ii9pbWcvamF2YS13aWNrZXQtaHRtbDUucG5nIiBjbGFzcz0ibC1mdWxsIiAvPgogICAgICAgICA8aDM+SnVzdCBKYXZhICZhbXA7IEhUTUw8L2gzPgpAQCAtMjEyLDcgKzIxNSw3IEBACiAgICAgICAgIG9mIGJhc2ljIEFqYXggY29tcG9uZW50cy48L3A+CiAgICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGgzPk9wZW4gU291cmNlIHdpdGggQXBhY2hlIExpY2Vuc2U8L2gzPgogICAgICAgICA8cD5TaW5jZSBpdHMgaW5jZXB0aW9uIGluIDIwMDQgV2lja2V0IGhhcyBiZWVuIGFuIG9wZW4gc291cmNlCkBAIC0yMzQsNyArMjM3LDcgQEAKICAgICAgICAgcGFnZSwgb3IgZXZlbiBjb21wb25lbnQgbGV2ZWwuPC9wPgogICAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxoMz5NdWx0aS10YWIgYW5kIHdpbmRvdyBzdXBwb3J0PC9oMz4KICAgICAgICAgPHA+Tm8gbW9yZSBwYWluIHdoaWxlIGtlZXBpbmcgdGFwcyBvbiBtdWx0aXBsZSB0YWJzIGFuZCB3aW5kb3dzLiAKQEAgLTI1MSw3ICsyNTQsNyBAQAogICAgICAgICBmaWxlLjwvcD4KICAgICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aDM+VGVzdCB5b3VyIHBhZ2VzIGFuZCBjb21wb25lbnRzPC9oMz4KICAgICAgICAgPHA+V2l0aCBXaWNrZXRUZXN0ZXIgeW91IGNhbiBhY2hpZXZlIHRlc3RpbmcgY292ZXJhZ2UgeW91ciBRQSAKQEAgLTI3NCw0ICsyNzcsNiBAQAogPC9kaXY+CiA8ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KIDwvZGl2PgorPGhyIC8+CisKIAY6BkVUClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8yMi8xMWZhNmQ0OTFkMjA4YjAwMzM3NjhkZGM5MTc0OWNjODZiNTlkNmUzOWJlYTgzZTIxMDczZjFlNzNhYTQ2ZSBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMjIvMTFmYTZkNDkxZDIwOGIwMDMzNzY4ZGRjOTE3NDljYzg2YjU5ZDZlMzliZWE4M2UyMTA3M2YxZTczYWE0NmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc3NzE2MQotLS0gL2Rldi9udWxsCisrKyBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMjIvMTFmYTZkNDkxZDIwOGIwMDMzNzY4ZGRjOTE3NDljYzg2YjU5ZDZlMzliZWE4M2UyMTA3M2YxZTczYWE0NmUKQEAgLTAsMCArMSwyMDcgQEAKKwQISSIC/Cg8ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CisgICAgPGgxIGlkPSJpbnRyb2R1Y3Rpb24iPkFubm91bmNpbmcgQXBhY2hlJm5ic3A7V2lja2V0Jm5ic3A7ODogV3JpdGUgTGVzcywgQWNoaWV2ZSBNb3JlPC9oMT4KKyAgICA8ZGl2PgorICAgICAgPGltZyBzcmM9Ii9pbWcvbG9nby5zdmciIGFsdD0iQXBhY2hlIFdpY2tldCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIC8+CisgICAgPC9kaXY+CisgICAgPHA+CisgICAgICBUaGUgQXBhY2hlIFdpY2tldCBwcm9qZWN0IGFubm91bmNlcyB0aGUgOXRoIG1ham9yIHJlbGVhc2Ugb2YgdGhlIG9wZW4gc291cmNlIEphdmEgd2ViIGZyYW1ld29yayBzZXJ2aWNpbmcgd2Vic2l0ZXMgYW5kIGFwcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGdsb2JlIHNpbmNlIDIwMDQuIEJ1aWx0IG9uIHRvcCBvZiBKYXZhIDExLCB0aGlzIHZlcnNpb24gb2YgV2lja2V0IGJyaW5ncyB3ZWIgZGV2ZWxvcG1lbnQgaW50byB0aGUgbW9kZXJuIEphdmEgd29ybGQsIG9mZmVyaW5nIGEgZnVuZGFtZW50YWwgdG9vbCB0byBrZWVwIHlvdSBjb2RlIHVwIHRvIGRhdGUgd2l0aCBKYXZhIGV2b2x1dGlvbi4KKyAgICA8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QiPgorICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgorICAgIDxoMz5CcmluZyB0aGUgd2ViIGludG8gdGhlIG1vZGVybiBKYXZhIGVyYTwvaDM+CisgICAgPHA+CisgICAgIFRoZSByZWxlYXNlIG9mIEphdmEgOSBoYXMgYmVlbiBhIHR1cm5pbmcgcG9pbnQgaW4gSmF2YSBoaXN0b3J5IHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gZm9yIHRoZSBtb2Rlcm4gSmF2YSBlcmEuIEhvd2V2ZXIsIHRoZSBtYWduaXR1ZGUgb2YgdGhpcyBjaGFuZ2UgaGFzIGRpc2NvdXJhZ2UgbWFueSBkZXZlbG9wZXJzIGZyb20gbGVhdmluZyB0aGUgc2FmZSBoYXJib3IgcmFwcHJlc2VudGVkIGJ5IEphdmEgOC4gV2l0aCBXaWNrZXQgOSB3ZSBmaW5hbGx5IGhhdmUgYSBmdW5kYW1lbnRhbCB0b29sIHRvIG1vdmUgb24gYW5kIGJyaW5nIG91ciB3ZWIgYXBwbGljYXRpb24gaW50byB0aGUgbmV3IEphdmEgd29ybGQuICAKKyAgICA8L3A+CisgICAgPHA+CisgICAgICBXaXRoIHRoaXMgdmVyc2lvbiBXaWNrZXQgaGFzIGJlZW4gY29tcGxldGVkIHJldmlzaXRlZCBhbmQgaW1wcm92ZWQgdG8gZW1icmFjZSBuZXcgdGVjaG5vbG9naWVzIGxpa2UgSmF2YSBtb2R1bGFyaXphdGlvbiBhbmQgbmV3IGxpYnJhcnkgbGlrZSBKVW5pdCA1LgorICAgIDwvcD4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5TdGF5IHVwIHRvIGRhdGUgd2l0aCBKYXZhIHJlbGVhc2UgY3ljbGU8L2gzPgorICAgIDxwPgorICAgICAgV2l0aCBKYXZhIHJlbGVhc2luZyBhdCBhIGZhc3RlciBwaGFzZSBpdCdzIGltcG9ydGFudCB0byBrZWVwIGEgbGlicmFyeSB1cCB0byBkYXRlIHdpdGggdGhlIGxhc3Rlc3QgY2hhbmdlcyBpbnRyb2R1Y2VkIGluIHRoZSBwbGF0Zm9ybSBhbmQgZW5zdXJlIGl0IHdvcmtzIHdpdGggdGhlIGxhdGVzdCBKYXZhIHJlbGVhc2UuIFdpY2tldCBkb2VzIGFsbCBvZiB0aGlzIGJ5IHRha2luZyBwYXJ0IHRvIHRoZSA8YSBocmVmPSJodHRwczovL3dpa2kub3Blbmpkay5qYXZhLm5ldC9kaXNwbGF5L3F1YWxpdHkvUXVhbGl0eStPdXRyZWFjaCIgdGFyZ2V0PSJfYmxhbmsiPk9wZW5KREsgUXVhbGl0eSBPdXRyZWFjaDwvYT4sIGFuIGluaXRpYXRpdmUgYWltZWQgdG8gdGVzdCBwb3B1bGFyIE9wZW4gU291cmNlIHByb2plY3RzIHdpdGggYm90aCB0aGUgbGF0ZXN0IE9wZW5KREsgcmVsZWFzZSBhbmQgdGhlIEVhcmx5IEFjY2VzcyByZWxlYXNlLgorICAgIDwvcD4KKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPiBCZSByZWFkeSBmb3IgdGhlIG5leHQgSmF2YSBFbnRlcnByaXNlPC9oMz4KKyAgICA8cD4KKyAgICAgU2hvcnRseSBhZnRlciBKYXZhIDkgd2FzIHJlbGVhc2VkLCBPcmFjbGUgc3VibWl0dGVkIEphdmEgRUUgdG8gdGhlIEVjbGlwc2UgRm91bmRhdGlvbi4gQXMgc2lkZSBlZmZlY3Qgb2YgdGhpcyBvd25lciBjaGFuZ2UsIHRoZSBwYWNrYWdlIG5hbWUgJ2phdmF4JyBoYWQgdG8gYmUgbWlncmF0ZSB0byAnamFrYXJ0YScuIFdpY2tldCBoaXN0b3JpY2FsbHkgcHJvbW90ZWQgZGVjdXBsaW5nIGJldHdlZW4gSmF2YSBFRSBBUElzIGFuZCBhcHBsaWNhdGlvbiBjb2RlLCBoZW5jZSBtYWtpbmcgbXVjaCBtb3JlIGVhc2llciB0aGUgdHJhbnNpdGlvbiB0byB0aGUgZnV0dXJlIEphdmEgRW50ZXJwcmlzZSB2ZXJzaW9ucy4gCisgICAgPC9wPgorICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CisgICAgPGgzPlByb3RlY3QgeW91ciB3ZWIgYXBwcyB3aXRoIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IChDU1ApPC9oMz4KKyAgICA8cD4KKyAgICAgQXMgdGhlIG51bWJlciBvZiBzZWN1cml0eSB0aHJlYXRzIGdyb3dzLCBpdCdzIGNydWNpYWwgZm9yIHdlYiBhcHBsaWNhdGlvbnMgdG8gYWRvcHQgdGhlIGxhdGVzdCBzZWN1cml0eSBzdGFuZGFyZHMgYW5kIGNvdW50ZXJtZWFzdXJlcy4gQ1NQIGlzIGEgbW9kZXJuIHN0YW5kYXJkIHRoYXQgYWxsb3dzIGFwcGxpY2F0aW9ucyB0byBkZWNsYXJlIGFwcHJvdmVkIG9yaWdpbnMgb2YgY29udGVudCAoc3VjaCBhcyBKYXZhc2NyaXB0LCBDU1MsIGltYWdlcywgZXRjLi4uKSBmb3IgdGhlIGJyb3dzZXIgdG8gbG9hZC4gQ29uc3RydWN0aW5nIGEgc2FmZSBhbmQgYXQgdGhlIHNhbWUgdGltZSBjb21wbGV0ZSBDU1AgY2FuIGJlIGNoYWxsZW5naW5nLiAKKyAgICA8L3A+CisgICAgPHA+CisgICAgIFlvdSBlaXRoZXIgcmlzayBsZWF2aW5nIGhvbGVzIGluIHRoZSBkZWZlbnNlIG9mIHlvdXIgYXBwbGljYXRpb24gb3IgeW91IGJyZWFrIGNlcnRhaW4gZnVuY3Rpb25hbGl0eS4gUHJvdGVjdGluZyBhZ2FpbnN0IHVud2FudGVkIGlubGluZSBzY3JpcHRzIGlzIHRoZSBtb3N0IGltcG9ydGFudCB0YXJnZXQgdG8gYXR0YWluLiBJbiBDU1AgdGhpcyBpcyBjYWxsZWQgJ3Vuc2FmZS1pbmxpbmUnIGFuZCBpdCdzIHRoZSBtb3N0IGNvbW1vbiBjYXVzZSBvZiBjcm9zcy1zaXRlIHNjcmlwdGluZyB2dWxuZXJhYmlsaXRpZXMuIFdpY2tldCA5IGNvbWVzIHdpdGggZnVsbCBzdXBwb3J0IGZvciBDU1AgYW5kIGRvZXMgbm90IG5lZWQgYW55IHVuc2FmZSBkaXJlY3RpdmVzLiBXaWNrZXQgd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCBhIG5vbmNlIHRvIGV2ZXJ5IGhlYWRlciBjb250cmlidXRpb24gYW5kIHdoaXRlbGlzdCB0aGlzIG5vbmNlLiBUaGlzIGFsbG93cyBmb3IgZmxleGlibGUgbG9hZGluZyBvZiByZXNvdXJjZXMgd2l0aG91dCB0aGUgbmVlZCBvZiBhIGNvbXBsZXggQ1NQLiBPZiBjb3Vyc2UgaXQgaXMgcG9zc2libGUgdG8gbW9kaWZ5IGFuZCBjdXN0b21pemUgdGhlIENTUCwgYWRkIGFkZGl0aW9uYWwgZGlyZWN0aXZlcyBvciBkaXNhYmxlIGl0IGVudGlyZWx5LiBMb29rdXAgb3VyIFtkb2N1bWVudGF0aW9uXShodHRwOi8vd2lja2V0LmFwYWNoZS5vcmcvbGVhcm4vI2d1aWRlKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gICAgIAorICAgIDwvcD4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5ObyBSZXdyaXRlIE5lY2Vzc2FyeTwvaDM+CisgICAgPHA+CisgICAgICBUaGUgV2lja2V0IHRlYW0gaGFzIGJlZW4gdmVyeSBjYXJlZnVsIG9mIGFkb3B0aW5nIEphdmEgOCB0ZWNobm9sb2dpZXMgYW5kIGFzIHN1Y2ggeW91IGRvbuKAmXQgaGF2ZSB0byByZXdyaXRlIHlvdXIgd2hvbGUgYXBwbGljYXRpb24sIHdoaWxzdCBzdGlsbCByZWFwaW5nIGFsbCB0aGUgYmVuZWZpdHMgb2YgSmF2YSA4LgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIEFzIHRoaXMgaXMgYSBuZXcgbWFqb3IgdmVyc2lvbiB3ZSBoYXZlLCBpbiBhY2NvcmRhbmNlIHdpdGggc2VtYW50aWMgdmVyc2lvbmluZywgY2xlYW5lZCB1cCBtYW55IEFQSXMgYW5kIHlvdSB3aWxsIGdldCBjb21waWxlIGVycm9ycyB3aGVuIHlvdSBtaWdyYXRlIGZyb20gcHJldmlvdXMgV2lja2V0IHZlcnNpb25zLgorICAgIDwvcD4KKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPk1pZ3JhdGluZyB0byBXaWNrZXQgODwvaDM+CisgICAgPHA+CisgICAgICBXaGVuIHlvdSBtaWdyYXRlIGZyb20gYSBwcmV2aW91cyBXaWNrZXQgdmVyc2lvbiB0byBXaWNrZXQgOCwgYSBmdWxsIGxpc3Qgb2YgY2hhbmdlcyBhbmQgbWlncmF0aW9ucyBpcyBhdmFpbGFibGUgYXQgdGhlIGZvbGxvd2luZyBwYWdlOgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIDxhIGhyZWY9Imh0dHBzOi8vcy5hcGFjaGUub3JnL3dpY2tldDhtaWdyYXRlIj5odHRwczovL3MuYXBhY2hlLm9yZy93aWNrZXQ4bWlncmF0ZTwvYT4KKyAgICA8L3A+CisgICAgPHA+CisgICAgICBQbGVhc2UgY29uc3VsdCB0aGlzIG1pZ3JhdGlvbiBndWlkZSB3aGVuIHlvdSBhcmUgbW92aW5nIHRvd2FyZHMgV2lja2V0IDguCisgICAgPC9wPgorICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgorICAgIDxoMj5HZXR0aW5nIFN0YXJ0ZWQgd2l0aCBXaWNrZXQgODwvaDI+CisgICAgPHA+CisgICAgICBJdCBpcyB2ZXJ5IGVhc3kgdG8gZ2V0IHN0YXJ0ZWQgd2l0aCBXaWNrZXQ6IHVzZSBvdXIgPGEgaHJlZj0iL3N0YXJ0L3F1aWNrc3RhcnQuaHRtbCI+cXVpY2stc3RhcnQgd2l6YXJkPC9hPiBvciAKKyAgICAgIHVzZSBvbmUgb2YgdGhlIG9wdGlvbnMgYmVsb3cuCisgICAgPC9wPgorICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+RG93bmxvYWQgdXNpbmcgQXBhY2hlIE1hdmVuPC9oMz4KKyAgICA8cD4KKyAgICAgIFdpdGggQXBhY2hlIE1hdmVuIHVwZGF0ZSB5b3VyIGRlcGVuZGVuY3kgdG8gKGFuZCBkb24ndCBmb3JnZXQgdG8KKyAgICAgIHVwZGF0ZSBhbnkgb3RoZXIgZGVwZW5kZW5jaWVzIG9uIFdpY2tldCBwcm9qZWN0cyB0byB0aGUgc2FtZSB2ZXJzaW9uKToKKyAgICA8L3A+CisKKzxmaWd1cmUgY2xhc3M9ImhpZ2hsaWdodCI+PHByZT48Y29kZSBjbGFzcz0ibGFuZ3VhZ2UteG1sIiBkYXRhLWxhbmc9InhtbCI+PHNwYW4gY2xhc3M9Im50Ij4mbHQ7ZGVwZW5kZW5jeSZndDs8L3NwYW4+CisgICAgPHNwYW4gY2xhc3M9Im50Ij4mbHQ7Z3JvdXBJZCZndDs8L3NwYW4+b3JnLmFwYWNoZS53aWNrZXQ8c3BhbiBjbGFzcz0ibnQiPiZsdDsvZ3JvdXBJZCZndDs8L3NwYW4+CisgICAgPHNwYW4gY2xhc3M9Im50Ij4mbHQ7YXJ0aWZhY3RJZCZndDs8L3NwYW4+d2lja2V0LWNvcmU8c3BhbiBjbGFzcz0ibnQiPiZsdDsvYXJ0aWZhY3RJZCZndDs8L3NwYW4+CisgICAgPHNwYW4gY2xhc3M9Im50Ij4mbHQ7dmVyc2lvbiZndDs8L3NwYW4+OC44LjA8c3BhbiBjbGFzcz0ibnQiPiZsdDsvdmVyc2lvbiZndDs8L3NwYW4+Cis8c3BhbiBjbGFzcz0ibnQiPiZsdDsvZGVwZW5kZW5jeSZndDs8L3NwYW4+PC9jb2RlPjwvcHJlPjwvZmlndXJlPgorCisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5Eb3dubG9hZCBzb3VyY2VzL2JpbmFyaWVzIG1hbnVhbGx5PC9oMz4KKyAgICA8cD4KKyAgICAgIE9yIGRvd25sb2FkIGFuZCBidWlsZCB0aGUgZGlzdHJpYnV0aW9uIHlvdXJzZWxmLCBvciB1c2Ugb3VyCisgICAgICBjb252ZW5pZW5jZSBiaW5hcnkgcGFja2FnZQorICAgIDwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+U291cmNlOiA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZHluL2Nsb3Nlci5jZ2kvd2lja2V0LzguOC4wIj44LjguMCBzb3VyY2UgZG93bmxvYWQ8L2E+PC9saT4KKyAgICAgIDxsaT5CaW5hcnk6IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9keW4vY2xvc2VyLmNnaS93aWNrZXQvOC44LjAvYmluYXJpZXMiPjguOC4wIGJpbmFyeSBkb3dubG9hZDwvYT48L2xpPgorICAgIDwvdWw+CisgIDwvZGl2PgorPC9kaXY+CisKKzxociAvPgorCis8ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CisgICAgPGgxIGlkPSJpbnRyb2R1Y3Rpb24iPkludHJvZHVjaW5nIEFwYWNoZSZuYnNwO1dpY2tldDwvaDE+CisgICAgPHA+SW52ZW50ZWQgaW4gMjAwNCwgV2lja2V0IGlzIG9uZSBvZiB0aGUgZmV3IHN1cnZpdm9ycyBvZiB0aGUgSmF2YQorICAgIHNlcnZlcnNpZGUgd2ViIGZyYW1ld29yayB3YXJzIG9mIHRoZSBtaWQgMjAwMCdzLiBXaWNrZXQgaXMgYW4gb3BlbgorICAgIHNvdXJjZSwgY29tcG9uZW50IG9yaWVudGVkLCBzZXJ2ZXJzaWRlLCBKYXZhIHdlYiBhcHBsaWNhdGlvbiBmcmFtZXdvcmsuCisgICAgV2l0aCBhIGhpc3Rvcnkgb2Ygb3ZlciBhIGRlY2FkZSwgaXQgaXMgc3RpbGwgZ29pbmcgc3Ryb25nIGFuZCBoYXMgYQorICAgIHNvbGlkIGZ1dHVyZSBhaGVhZC4gTGVhcm4gd2h5IHlvdSBzaG91bGQgY29uc2lkZXIgV2lja2V0IGZvciB5b3VyIG5leHQKKyAgICB3ZWIgYXBwbGljYXRpb24uPC9wPgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxpbWcgc3JjPSIvaW1nL2phdmEtd2lja2V0LWh0bWw1LnBuZyIgY2xhc3M9ImwtZnVsbCIgLz4KKyAgICAgICAgPGgzPkp1c3QgSmF2YSAmYW1wOyBIVE1MPC9oMz4KKyAgICAgICAgPHA+TGV2ZXJhZ2Ugd2hhdCB5b3Uga25vdyBhYm91dCBKYXZhIG9yIHlvdXIgZmF2b3VyaXRlIEhUTUwgCisgICAgICAgIGVkaXRvciB0byB3cml0ZSBXaWNrZXQgYXBwbGljYXRpb25zLiBXaXRoIHB1cmUgSmF2YSBjb2RlIGFuZCBIVE1MIAorICAgICAgICBtYXJrdXAgV2lja2V0IGlzIHRoZSBnby10byB3ZWIgZnJhbWV3b3JrIGZvciBwdXJpc3RzLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxpbWcgc3JjPSIvaW1nL3dpY2tldC1zYWZlLnBuZyIgY2xhc3M9ImwtZnVsbCIgLz4KKyAgICAgICAgPGgzPlNlY3VyZSBieSBEZWZhdWx0PC9oMz4KKyAgICAgICAgPHA+VVJMcyBkbyBub3QgZXhwb3NlIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBhbmQgYWxsIGNvbXBvbmVudCBwYXRocyBhcmUKKyAgICAgICAgc2Vzc2lvbi1yZWxhdGl2ZS4gV2lja2V0IGtlZXBzIHlvdXIgbW9kZWwgcHJpdmF0ZSBleGNlcHQgdGhvc2UgcGFydHMKKyAgICAgICAgeW91IGV4cGxpY2l0bHkgZXhwb3NlLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxpbWcgc3JjPSIvaW1nL3dpY2tldC1jb21wb25lbnRzLnBuZyIgY2xhc3M9ImwtZnVsbCIgLz4KKyAgICAgICAgPGgzPkFKQVggQ29tcG9uZW50czwvaDM+CisgICAgICAgIDxwPldyaXRlIEFqYXggYXBwbGljYXRpb25zIHdpdGhvdXQgaGF2aW5nIHRvIHdyaXRlIGEgc2luZ2xlIGxpbmUgCisgICAgICAgIG9mIEphdmFTY3JpcHQgY29kZS4gV2lja2V0J3MgQWpheCBmdW5jdGlvbmFsaXR5IG1ha2VzIGl0IHRyaXZpYWwgCisgICAgICAgIHRvIHVwZGF0ZSBzZWxlY3RlZCBwYXJ0cyBvZiBhIFVJLCBhbmQgY29tZXMgd2l0aCBhIGdyZWF0IHNlbGVjdGlvbiAKKyAgICAgICAgb2YgYmFzaWMgQWpheCBjb21wb25lbnRzLjwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPk9wZW4gU291cmNlIHdpdGggQXBhY2hlIExpY2Vuc2U8L2gzPgorICAgICAgICA8cD5TaW5jZSBpdHMgaW5jZXB0aW9uIGluIDIwMDQgV2lja2V0IGhhcyBiZWVuIGFuIG9wZW4gc291cmNlCisgICAgICAgIHByb2plY3QgYW5kIHJlbWFpbnMgYXZhaWxhYmxlIHVuZGVyIG9uZSBvZiB0aGUgbW9zdCBwZXJtaXNzaXZlCisgICAgICAgIGxpY2Vuc2VzOiB0aGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPk1haW50YWluYWJsZSBjb2RlPC9oMz4KKyAgICAgICAgPHA+UGFnZXMgYW5kIENvbXBvbmVudHMgaW4gV2lja2V0IGFyZSByZWFsIEphdmEgb2JqZWN0cyB0aGF0IHN1cHBvcnQKKyAgICAgICAgZW5jYXBzdWxhdGlvbiwgaW5oZXJpdGFuY2UgYW5kIGV2ZW50cy4gQ3JlYXRlIGhpZ2ggbGV2ZWwgY29tcG9uZW50cworICAgICAgICB3aXRoIGVhc2UgYW5kIGJ1bmRsZSBpdHMgc3R5bGVzaGVldHMsIEphdmFTY3JpcHQgYW5kIG90aGVyIHJlc291cmNlcworICAgICAgICBpbnRvIG9uZSByZXVzYWJsZSBwYWNrYWdlLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5JbnRlcm5hdGlvbmFsaXplZCB0byB0YWtlIG9uIHRoZSB3b3JsZDwvaDM+CisgICAgICAgIDxwPldpdGggc3VwcG9ydCBvZiBvdmVyIDI1IGxhbmd1YWdlcyBvdXQtb2YtdGhlLWJveCwgV2lja2V0IGxldCdzIAorICAgICAgICB5b3UgZ2V0IHN0YXJ0ZWQgaW4geW91ciBvd24gbGFuZ3VhZ2UsIG9yIGEgc2Vjb25kIGxhbmd1YWdlIHdpdGggbm8gCisgICAgICAgIGVmZm9ydC4gWW91IGNhbiBwcm92aWRlIGFsdGVybmF0aXZlIGxhbmd1YWdlcyBvbiB0aGUgYXBwbGljYXRpb24sIAorICAgICAgICBwYWdlLCBvciBldmVuIGNvbXBvbmVudCBsZXZlbC48L3A+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5NdWx0aS10YWIgYW5kIHdpbmRvdyBzdXBwb3J0PC9oMz4KKyAgICAgICAgPHA+Tm8gbW9yZSBwYWluIHdoaWxlIGtlZXBpbmcgdGFwcyBvbiBtdWx0aXBsZSB0YWJzIGFuZCB3aW5kb3dzLiAKKyAgICAgICAgV2lja2V0J3MgYXV0b21hdGljIHN0YXRlIHN0b3JhZ2UgZW5zdXJlcyB0aGF0IHlvdXIgdXNlcnMgY2FuIG9wZW4gCisgICAgICAgIHBhZ2VzIGluIG5ldyB0YWJzIGFuZCB3aW5kb3dzIHdpdGhvdXQgY2F1c2luZyBwcm9ibGVtcy48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC10d28tdGhpcmQiPgorICAgICAgICA8aDM+V29yayB3aXRoIEphdmFTY3JpcHQgYW5kIENTUzwvaDM+CisgICAgICAgIDxwPkdsb2JhbCBKYXZhU2NyaXB0IGxpYnJhcmllcyBhbmQgQ1NTIHN0eWxpbmcgbWl4IHByb3Blcmx5IHdpdGggCisgICAgICAgIGNvbXBvbmVudCBsb2NhbCBKYXZhU2NyaXB0IGFuZCBDU1MgcmVzb3VyY2VzLiBZb3UgY2FuIHVzZSBjdXN0b20gCisgICAgICAgIGNvbXBvbmVudCBsaWJyYXJpZXMgdGhhdCBzaGlwIHdpdGggZGVmYXVsdCBKYXZhU2NyaXB0IGJlaGF2aW91ciBhbmQgCisgICAgICAgIENTUyBzdHlsaW5nLCB3aXRob3V0IGhhdmluZyB0byBkbyBhbnl0aGluZyB5b3Vyc2VsZi4gQ3JlYXRpbmcgc3VjaCAKKyAgICAgICAgc2VsZi1jb250YWluZWQgY29tcG9uZW50IGxpYnJhcmllcyBpcyBhcyBlYXN5IGFzIGNyZWF0aW5nIGEgSkFSIAorICAgICAgICBmaWxlLjwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPlRlc3QgeW91ciBwYWdlcyBhbmQgY29tcG9uZW50czwvaDM+CisgICAgICAgIDxwPldpdGggV2lja2V0VGVzdGVyIHlvdSBjYW4gYWNoaWV2ZSB0ZXN0aW5nIGNvdmVyYWdlIHlvdXIgUUEgCisgICAgICAgIGRlcGFydG1lbnQgY2FuIG9ubHkgZHJlYW0gb2YuIFRlc3QgeW91ciBwYWdlcyB3aXRob3V0IGhhdmluZyB0byBydW4gCisgICAgICAgIGluc2lkZSBhIGJyb3dzZXIsIG9yIHN0YXJ0IGEgY29udGFpbmVyLiBUZXN0IHlvdXIgY29tcG9uZW50cyBkaXJlY3RseSwgCisgICAgICAgIGNoZWNrIHRoZWlyIHJlbmRlcmVkIG1hcmt1cCB0YWdzLCBhdHRyaWJ1dGVzIGFuZCBjb250ZW50cyB3aXRoIGVhc2UuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPkluamVjdGlvbiBzdXBwb3J0PC9oMz4KKyAgICAgICAgPHA+SW5qZWN0IHlvdXIgc2VydmljZXMgaW50byB5b3VyIHBhZ2VzIGFuZCBjb21wb25lbnRzIHdpdGggdGhlIAorICAgICAgICB0ZWNobm9sb2d5IG9mIHlvdXIgY2hvb3Npbmc6IFdpY2tldCBwcm92aWRlcyBpbnRlZ3JhdGlvbiB3aXRoIENESSAKKyAgICAgICAgKEpTUi0zMDUpLCBTcHJpbmcgYW5kIEd1aWNlLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5KYXZhRUUgaW50ZWdyYXRpb248L2gzPgorICAgICAgICA8cD5JZiB5b3UgYXJlIHVzaW5nIHRoZSBXZWIgcHJvZmlsZSBvZiBKYXZhRUUgNiBvciBuZXdlciwgeW91IGNhbiAKKyAgICAgICAgbGV2ZXJhZ2UgSlBBLCBFSkJzLCBCZWFuIFZhbGlkYXRpb24gYW5kIENESSB3aXRoIFdpY2tldCdzIGludGVncmF0aW9ucyAKKyAgICAgICAgZm9yIHRoZXNlIHNwZWNpZmljYXRpb25zLjwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8L2Rpdj4KKzxociAvPgorCisGOgZFVApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMmUvYjVkNzM5ZTJlZWQ3ODI1ZWYxNzY1MmYzOTQxM2I3YjkzNTllNTgxZjY2OTFiMWEwODQ5NTViMjQ0MTYzM2EgYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzJlL2I1ZDczOWUyZWVkNzgyNWVmMTc2NTJmMzk0MTNiN2I5MzU5ZTU4MWY2NjkxYjFhMDg0OTU1YjI0NDE2MzNhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1MzJiYzQKLS0tIC9kZXYvbnVsbAorKysgYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzJlL2I1ZDczOWUyZWVkNzgyNWVmMTc2NTJmMzk0MTNiN2I5MzU5ZTU4MWY2NjkxYjFhMDg0OTU1YjI0NDE2MzNhCkBAIC0wLDAgKzEsMjA3IEBACisECEkiAiQpPGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgorICAgIDxoMSBpZD0iaW50cm9kdWN0aW9uIj5Bbm5vdW5jaW5nIEFwYWNoZSZuYnNwO1dpY2tldCZuYnNwOzg6IFdyaXRlIExlc3MsIEFjaGlldmUgTW9yZTwvaDE+CisgICAgPGRpdj4KKyAgICAgIDxpbWcgc3JjPSIvaW1nL2xvZ28uc3ZnIiBhbHQ9IkFwYWNoZSBXaWNrZXQiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiAvPgorICAgIDwvZGl2PgorICAgIDxwPgorICAgICAgVGhlIEFwYWNoZSBXaWNrZXQgcHJvamVjdCBhbm5vdW5jZXMgdGhlIDl0aCBtYWpvciByZWxlYXNlIG9mIHRoZSBvcGVuIHNvdXJjZSBKYXZhIHdlYiBmcmFtZXdvcmsgc2VydmljaW5nIHdlYnNpdGVzIGFuZCBhcHBsaWNhdGlvbnMgYWNyb3NzIHRoZSBnbG9iZSBzaW5jZSAyMDA0LiBCdWlsdCBvbiB0b3Agb2YgSmF2YSAxMSwgdGhpcyB2ZXJzaW9uIG9mIFdpY2tldCBicmluZ3Mgd2ViIGRldmVsb3BtZW50IGludG8gdGhlIG1vZGVybiBKYXZhIHdvcmxkLCBvZmZlcmluZyBhIGZ1bmRhbWVudGFsIHRvb2wgdG8ga2VlcCB5b3UgY29kZSB1cCB0byBkYXRlIHdpdGggSmF2YSBldm9sdXRpb24uCisgICAgPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKyAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KKyAgICA8aDM+QnJpbmcgdGhlIHdlYiBpbnRvIHRoZSBtb2Rlcm4gSmF2YSBlcmE8L2gzPgorICAgIDxwPgorICAgICBUaGUgcmVsZWFzZSBvZiBKYXZhIDkgaGFzIGJlZW4gYSB0dXJuaW5nIHBvaW50IGluIEphdmEgaGlzdG9yeSB3aGljaCBsYWlkIHRoZSBmb3VuZGF0aW9uIGZvciB0aGUgbW9kZXJuIEphdmEgZXJhLiBIb3dldmVyLCB0aGUgbWFnbml0dWRlIG9mIHRoaXMgY2hhbmdlIGhhcyBkaXNjb3VyYWdlIG1hbnkgZGV2ZWxvcGVycyBmcm9tIGxlYXZpbmcgdGhlIHNhZmUgaGFyYm9yIHJhcHByZXNlbnRlZCBieSBKYXZhIDguIFdpdGggV2lja2V0IDkgd2UgZmluYWxseSBoYXZlIGEgZnVuZGFtZW50YWwgdG9vbCB0byBtb3ZlIG9uIGFuZCBicmluZyBvdXIgd2ViIGFwcGxpY2F0aW9uIGludG8gdGhlIG5ldyBKYXZhIHdvcmxkLiAgCisgICAgPC9wPgorICAgIDxwPgorICAgICAgV2l0aCB0aGlzIHZlcnNpb24gV2lja2V0IGhhcyBiZWVuIGNvbXBsZXRlZCByZXZpc2l0ZWQgYW5kIGltcHJvdmVkIHRvIGVtYnJhY2UgbmV3IHRlY2hub2xvZ2llcyBsaWtlIEphdmEgbW9kdWxhcml6YXRpb24gYW5kIG5ldyBsaWJyYXJ5IGxpa2UgSlVuaXQgNS4KKyAgICA8L3A+CisgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+U3RheSB1cCB0byBkYXRlIHdpdGggSmF2YSByZWxlYXNlIGN5Y2xlPC9oMz4KKyAgICA8cD4KKyAgICAgIFdpdGggSmF2YSByZWxlYXNpbmcgYXQgYSBmYXN0ZXIgcGhhc2UgaXQncyBpbXBvcnRhbnQgdG8ga2VlcCBhIGxpYnJhcnkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXN0ZXN0IGNoYW5nZXMgaW50cm9kdWNlZCBpbiB0aGUgcGxhdGZvcm0gYW5kIGVuc3VyZSBpdCB3b3JrcyB3aXRoIHRoZSBsYXRlc3QgSmF2YSByZWxlYXNlLiBXaWNrZXQgZG9lcyBhbGwgb2YgdGhpcyBieSB0YWtpbmcgcGFydCB0byB0aGUgPGEgaHJlZj0iaHR0cHM6Ly93aWtpLm9wZW5qZGsuamF2YS5uZXQvZGlzcGxheS9xdWFsaXR5L1F1YWxpdHkrT3V0cmVhY2giIHRhcmdldD0iX2JsYW5rIj5PcGVuSkRLIFF1YWxpdHkgT3V0cmVhY2g8L2E+LCBhbiBpbml0aWF0aXZlIGFpbWVkIHRvIHRlc3QgcG9wdWxhciBPcGVuIFNvdXJjZSBwcm9qZWN0cyB3aXRoIGJvdGggdGhlIGxhdGVzdCBPcGVuSkRLIHJlbGVhc2UgYW5kIHRoZSBFYXJseSBBY2Nlc3MgcmVsZWFzZS4KKyAgICA8L3A+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz4gQmUgcmVhZHkgZm9yIHRoZSBuZXh0IEphdmEgRW50ZXJwcmlzZTwvaDM+CisgICAgPHA+CisgICAgIFNob3J0bHkgYWZ0ZXIgSmF2YSA5IHdhcyByZWxlYXNlZCwgT3JhY2xlIHN1Ym1pdHRlZCBKYXZhIEVFIHRvIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24uIEFzIHNpZGUgZWZmZWN0IG9mIHRoaXMgb3duZXIgY2hhbmdlLCB0aGUgcGFja2FnZSBuYW1lICdqYXZheCcgaGFkIHRvIGJlIG1pZ3JhdGUgdG8gJ2pha2FydGEnLiBXaWNrZXQgaGlzdG9yaWNhbGx5IHByb21vdGVkIGRlY3VwbGluZyBiZXR3ZWVuIEphdmEgRUUgQVBJcyBhbmQgYXBwbGljYXRpb24gY29kZSwgaGVuY2UgbWFraW5nIG11Y2ggbW9yZSBlYXNpZXIgdGhlIHRyYW5zaXRpb24gdG8gdGhlIGZ1dHVyZSBKYXZhIEVudGVycHJpc2UgdmVyc2lvbnMuIAorICAgIDwvcD4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgorICAgIDxoMz5Qcm90ZWN0IHlvdXIgd2ViIGFwcHMgd2l0aCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSAoQ1NQKTwvaDM+CisgICAgPHA+CisgICAgIEFzIHRoZSBudW1iZXIgb2Ygc2VjdXJpdHkgdGhyZWF0cyBncm93cywgaXQncyBjcnVjaWFsIGZvciB3ZWIgYXBwbGljYXRpb25zIHRvIGFkb3B0IHRoZSBsYXRlc3Qgc2VjdXJpdHkgc3RhbmRhcmRzIGFuZCBjb3VudGVybWVhc3VyZXMuIENTUCBpcyBhIG1vZGVybiBzdGFuZGFyZCB0aGF0IGFsbG93cyBhcHBsaWNhdGlvbnMgdG8gZGVjbGFyZSBhcHByb3ZlZCBvcmlnaW5zIG9mIGNvbnRlbnQgKHN1Y2ggYXMgSmF2YXNjcmlwdCwgQ1NTLCBpbWFnZXMsIGV0Yy4uLikgZm9yIHRoZSBicm93c2VyIHRvIGxvYWQuIENvbnN0cnVjdGluZyBhIHNhZmUgYW5kIGF0IHRoZSBzYW1lIHRpbWUgY29tcGxldGUgQ1NQIGNhbiBiZSBjaGFsbGVuZ2luZy4gCisgICAgPC9wPgorICAgIDxwPgorICAgICBZb3UgZWl0aGVyIHJpc2sgbGVhdmluZyBob2xlcyBpbiB0aGUgZGVmZW5zZSBvZiB5b3VyIGFwcGxpY2F0aW9uIG9yIHlvdSBicmVhayBjZXJ0YWluIGZ1bmN0aW9uYWxpdHkuIFByb3RlY3RpbmcgYWdhaW5zdCB1bndhbnRlZCBpbmxpbmUgc2NyaXB0cyBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgdGFyZ2V0IHRvIGF0dGFpbi4gSW4gQ1NQIHRoaXMgaXMgY2FsbGVkICd1bnNhZmUtaW5saW5lJyBhbmQgaXQncyB0aGUgbW9zdCBjb21tb24gY2F1c2Ugb2YgY3Jvc3Mtc2l0ZSBzY3JpcHRpbmcgdnVsbmVyYWJpbGl0aWVzLiBXaWNrZXQgOSBjb21lcyB3aXRoIGZ1bGwgc3VwcG9ydCBmb3IgQ1NQIGFuZCBkb2VzIG5vdCBuZWVkIGFueSB1bnNhZmUgZGlyZWN0aXZlcy4gV2lja2V0IHdpbGwgYXV0b21hdGljYWxseSBhZGQgYSBub25jZSB0byBldmVyeSBoZWFkZXIgY29udHJpYnV0aW9uIGFuZCB3aGl0ZWxpc3QgdGhpcyBub25jZS4gVGhpcyBhbGxvd3MgZm9yIGZsZXhpYmxlIGxvYWRpbmcgb2YgcmVzb3VyY2VzIHdpdGhvdXQgdGhlIG5lZWQgb2YgYSBjb21wbGV4IENTUC4gT2YgY291cnNlIGl0IGlzIHBvc3NpYmxlIHRvIG1vZGlmeSBhbmQgY3VzdG9taXplIHRoZSBDU1AsIGFkZCBhZGRpdGlvbmFsIGRpcmVjdGl2ZXMgb3IgZGlzYWJsZSBpdCBlbnRpcmVseS4gTG9va3VwIG91ciAmbHQ7YSBocmVmPSJodHRwOi8vd2lja2V0LmFwYWNoZS5vcmcvbGVhcm4vI2d1aWRlIiB0YXJnZXQ9Il9ibGFuayIiJmd0O2RvY3VtZW50YXRpb24mbHQ7L2EmZ3Q7IGZvciBtb3JlIGluZm9ybWF0aW9uLiAgICAgCisgICAgPC9wPgorICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPk5vIFJld3JpdGUgTmVjZXNzYXJ5PC9oMz4KKyAgICA8cD4KKyAgICAgIFRoZSBXaWNrZXQgdGVhbSBoYXMgYmVlbiB2ZXJ5IGNhcmVmdWwgb2YgYWRvcHRpbmcgSmF2YSA4IHRlY2hub2xvZ2llcyBhbmQgYXMgc3VjaCB5b3UgZG9u4oCZdCBoYXZlIHRvIHJld3JpdGUgeW91ciB3aG9sZSBhcHBsaWNhdGlvbiwgd2hpbHN0IHN0aWxsIHJlYXBpbmcgYWxsIHRoZSBiZW5lZml0cyBvZiBKYXZhIDguCisgICAgPC9wPgorICAgIDxwPgorICAgICAgQXMgdGhpcyBpcyBhIG5ldyBtYWpvciB2ZXJzaW9uIHdlIGhhdmUsIGluIGFjY29yZGFuY2Ugd2l0aCBzZW1hbnRpYyB2ZXJzaW9uaW5nLCBjbGVhbmVkIHVwIG1hbnkgQVBJcyBhbmQgeW91IHdpbGwgZ2V0IGNvbXBpbGUgZXJyb3JzIHdoZW4geW91IG1pZ3JhdGUgZnJvbSBwcmV2aW91cyBXaWNrZXQgdmVyc2lvbnMuCisgICAgPC9wPgorICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+TWlncmF0aW5nIHRvIFdpY2tldCA4PC9oMz4KKyAgICA8cD4KKyAgICAgIFdoZW4geW91IG1pZ3JhdGUgZnJvbSBhIHByZXZpb3VzIFdpY2tldCB2ZXJzaW9uIHRvIFdpY2tldCA4LCBhIGZ1bGwgbGlzdCBvZiBjaGFuZ2VzIGFuZCBtaWdyYXRpb25zIGlzIGF2YWlsYWJsZSBhdCB0aGUgZm9sbG93aW5nIHBhZ2U6CisgICAgPC9wPgorICAgIDxwPgorICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9zLmFwYWNoZS5vcmcvd2lja2V0OG1pZ3JhdGUiPmh0dHBzOi8vcy5hcGFjaGUub3JnL3dpY2tldDhtaWdyYXRlPC9hPgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIFBsZWFzZSBjb25zdWx0IHRoaXMgbWlncmF0aW9uIGd1aWRlIHdoZW4geW91IGFyZSBtb3ZpbmcgdG93YXJkcyBXaWNrZXQgOC4KKyAgICA8L3A+CisgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CisgICAgPGgyPkdldHRpbmcgU3RhcnRlZCB3aXRoIFdpY2tldCA4PC9oMj4KKyAgICA8cD4KKyAgICAgIEl0IGlzIHZlcnkgZWFzeSB0byBnZXQgc3RhcnRlZCB3aXRoIFdpY2tldDogdXNlIG91ciA8YSBocmVmPSIvc3RhcnQvcXVpY2tzdGFydC5odG1sIj5xdWljay1zdGFydCB3aXphcmQ8L2E+IG9yIAorICAgICAgdXNlIG9uZSBvZiB0aGUgb3B0aW9ucyBiZWxvdy4KKyAgICA8L3A+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5Eb3dubG9hZCB1c2luZyBBcGFjaGUgTWF2ZW48L2gzPgorICAgIDxwPgorICAgICAgV2l0aCBBcGFjaGUgTWF2ZW4gdXBkYXRlIHlvdXIgZGVwZW5kZW5jeSB0byAoYW5kIGRvbid0IGZvcmdldCB0bworICAgICAgdXBkYXRlIGFueSBvdGhlciBkZXBlbmRlbmNpZXMgb24gV2lja2V0IHByb2plY3RzIHRvIHRoZSBzYW1lIHZlcnNpb24pOgorICAgIDwvcD4KKworPGZpZ3VyZSBjbGFzcz0iaGlnaGxpZ2h0Ij48cHJlPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS14bWwiIGRhdGEtbGFuZz0ieG1sIj48c3BhbiBjbGFzcz0ibnQiPiZsdDtkZXBlbmRlbmN5Jmd0Ozwvc3Bhbj4KKyAgICA8c3BhbiBjbGFzcz0ibnQiPiZsdDtncm91cElkJmd0Ozwvc3Bhbj5vcmcuYXBhY2hlLndpY2tldDxzcGFuIGNsYXNzPSJudCI+Jmx0Oy9ncm91cElkJmd0Ozwvc3Bhbj4KKyAgICA8c3BhbiBjbGFzcz0ibnQiPiZsdDthcnRpZmFjdElkJmd0Ozwvc3Bhbj53aWNrZXQtY29yZTxzcGFuIGNsYXNzPSJudCI+Jmx0Oy9hcnRpZmFjdElkJmd0Ozwvc3Bhbj4KKyAgICA8c3BhbiBjbGFzcz0ibnQiPiZsdDt2ZXJzaW9uJmd0Ozwvc3Bhbj44LjguMDxzcGFuIGNsYXNzPSJudCI+Jmx0Oy92ZXJzaW9uJmd0Ozwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJudCI+Jmx0Oy9kZXBlbmRlbmN5Jmd0Ozwvc3Bhbj48L2NvZGU+PC9wcmU+PC9maWd1cmU+CisKKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPkRvd25sb2FkIHNvdXJjZXMvYmluYXJpZXMgbWFudWFsbHk8L2gzPgorICAgIDxwPgorICAgICAgT3IgZG93bmxvYWQgYW5kIGJ1aWxkIHRoZSBkaXN0cmlidXRpb24geW91cnNlbGYsIG9yIHVzZSBvdXIKKyAgICAgIGNvbnZlbmllbmNlIGJpbmFyeSBwYWNrYWdlCisgICAgPC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5Tb3VyY2U6IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9keW4vY2xvc2VyLmNnaS93aWNrZXQvOC44LjAiPjguOC4wIHNvdXJjZSBkb3dubG9hZDwvYT48L2xpPgorICAgICAgPGxpPkJpbmFyeTogPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2R5bi9jbG9zZXIuY2dpL3dpY2tldC84LjguMC9iaW5hcmllcyI+OC44LjAgYmluYXJ5IGRvd25sb2FkPC9hPjwvbGk+CisgICAgPC91bD4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGhyIC8+CisKKzxkaXYgY2xhc3M9ImwtZnVsbCBsLWZpcnN0IHByZWFtYmxlIj4KKyAgICA8aDEgaWQ9ImludHJvZHVjdGlvbiI+SW50cm9kdWNpbmcgQXBhY2hlJm5ic3A7V2lja2V0PC9oMT4KKyAgICA8cD5JbnZlbnRlZCBpbiAyMDA0LCBXaWNrZXQgaXMgb25lIG9mIHRoZSBmZXcgc3Vydml2b3JzIG9mIHRoZSBKYXZhCisgICAgc2VydmVyc2lkZSB3ZWIgZnJhbWV3b3JrIHdhcnMgb2YgdGhlIG1pZCAyMDAwJ3MuIFdpY2tldCBpcyBhbiBvcGVuCisgICAgc291cmNlLCBjb21wb25lbnQgb3JpZW50ZWQsIHNlcnZlcnNpZGUsIEphdmEgd2ViIGFwcGxpY2F0aW9uIGZyYW1ld29yay4KKyAgICBXaXRoIGEgaGlzdG9yeSBvZiBvdmVyIGEgZGVjYWRlLCBpdCBpcyBzdGlsbCBnb2luZyBzdHJvbmcgYW5kIGhhcyBhCisgICAgc29saWQgZnV0dXJlIGFoZWFkLiBMZWFybiB3aHkgeW91IHNob3VsZCBjb25zaWRlciBXaWNrZXQgZm9yIHlvdXIgbmV4dAorICAgIHdlYiBhcHBsaWNhdGlvbi48L3A+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGltZyBzcmM9Ii9pbWcvamF2YS13aWNrZXQtaHRtbDUucG5nIiBjbGFzcz0ibC1mdWxsIiAvPgorICAgICAgICA8aDM+SnVzdCBKYXZhICZhbXA7IEhUTUw8L2gzPgorICAgICAgICA8cD5MZXZlcmFnZSB3aGF0IHlvdSBrbm93IGFib3V0IEphdmEgb3IgeW91ciBmYXZvdXJpdGUgSFRNTCAKKyAgICAgICAgZWRpdG9yIHRvIHdyaXRlIFdpY2tldCBhcHBsaWNhdGlvbnMuIFdpdGggcHVyZSBKYXZhIGNvZGUgYW5kIEhUTUwgCisgICAgICAgIG1hcmt1cCBXaWNrZXQgaXMgdGhlIGdvLXRvIHdlYiBmcmFtZXdvcmsgZm9yIHB1cmlzdHMuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGltZyBzcmM9Ii9pbWcvd2lja2V0LXNhZmUucG5nIiBjbGFzcz0ibC1mdWxsIiAvPgorICAgICAgICA8aDM+U2VjdXJlIGJ5IERlZmF1bHQ8L2gzPgorICAgICAgICA8cD5VUkxzIGRvIG5vdCBleHBvc2Ugc2Vuc2l0aXZlIGluZm9ybWF0aW9uIGFuZCBhbGwgY29tcG9uZW50IHBhdGhzIGFyZQorICAgICAgICBzZXNzaW9uLXJlbGF0aXZlLiBXaWNrZXQga2VlcHMgeW91ciBtb2RlbCBwcml2YXRlIGV4Y2VwdCB0aG9zZSBwYXJ0cworICAgICAgICB5b3UgZXhwbGljaXRseSBleHBvc2UuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGltZyBzcmM9Ii9pbWcvd2lja2V0LWNvbXBvbmVudHMucG5nIiBjbGFzcz0ibC1mdWxsIiAvPgorICAgICAgICA8aDM+QUpBWCBDb21wb25lbnRzPC9oMz4KKyAgICAgICAgPHA+V3JpdGUgQWpheCBhcHBsaWNhdGlvbnMgd2l0aG91dCBoYXZpbmcgdG8gd3JpdGUgYSBzaW5nbGUgbGluZSAKKyAgICAgICAgb2YgSmF2YVNjcmlwdCBjb2RlLiBXaWNrZXQncyBBamF4IGZ1bmN0aW9uYWxpdHkgbWFrZXMgaXQgdHJpdmlhbCAKKyAgICAgICAgdG8gdXBkYXRlIHNlbGVjdGVkIHBhcnRzIG9mIGEgVUksIGFuZCBjb21lcyB3aXRoIGEgZ3JlYXQgc2VsZWN0aW9uIAorICAgICAgICBvZiBiYXNpYyBBamF4IGNvbXBvbmVudHMuPC9wPgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+T3BlbiBTb3VyY2Ugd2l0aCBBcGFjaGUgTGljZW5zZTwvaDM+CisgICAgICAgIDxwPlNpbmNlIGl0cyBpbmNlcHRpb24gaW4gMjAwNCBXaWNrZXQgaGFzIGJlZW4gYW4gb3BlbiBzb3VyY2UKKyAgICAgICAgcHJvamVjdCBhbmQgcmVtYWlucyBhdmFpbGFibGUgdW5kZXIgb25lIG9mIHRoZSBtb3N0IHBlcm1pc3NpdmUKKyAgICAgICAgbGljZW5zZXM6IHRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZS48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+TWFpbnRhaW5hYmxlIGNvZGU8L2gzPgorICAgICAgICA8cD5QYWdlcyBhbmQgQ29tcG9uZW50cyBpbiBXaWNrZXQgYXJlIHJlYWwgSmF2YSBvYmplY3RzIHRoYXQgc3VwcG9ydAorICAgICAgICBlbmNhcHN1bGF0aW9uLCBpbmhlcml0YW5jZSBhbmQgZXZlbnRzLiBDcmVhdGUgaGlnaCBsZXZlbCBjb21wb25lbnRzCisgICAgICAgIHdpdGggZWFzZSBhbmQgYnVuZGxlIGl0cyBzdHlsZXNoZWV0cywgSmF2YVNjcmlwdCBhbmQgb3RoZXIgcmVzb3VyY2VzCisgICAgICAgIGludG8gb25lIHJldXNhYmxlIHBhY2thZ2UuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPkludGVybmF0aW9uYWxpemVkIHRvIHRha2Ugb24gdGhlIHdvcmxkPC9oMz4KKyAgICAgICAgPHA+V2l0aCBzdXBwb3J0IG9mIG92ZXIgMjUgbGFuZ3VhZ2VzIG91dC1vZi10aGUtYm94LCBXaWNrZXQgbGV0J3MgCisgICAgICAgIHlvdSBnZXQgc3RhcnRlZCBpbiB5b3VyIG93biBsYW5ndWFnZSwgb3IgYSBzZWNvbmQgbGFuZ3VhZ2Ugd2l0aCBubyAKKyAgICAgICAgZWZmb3J0LiBZb3UgY2FuIHByb3ZpZGUgYWx0ZXJuYXRpdmUgbGFuZ3VhZ2VzIG9uIHRoZSBhcHBsaWNhdGlvbiwgCisgICAgICAgIHBhZ2UsIG9yIGV2ZW4gY29tcG9uZW50IGxldmVsLjwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPk11bHRpLXRhYiBhbmQgd2luZG93IHN1cHBvcnQ8L2gzPgorICAgICAgICA8cD5ObyBtb3JlIHBhaW4gd2hpbGUga2VlcGluZyB0YXBzIG9uIG11bHRpcGxlIHRhYnMgYW5kIHdpbmRvd3MuIAorICAgICAgICBXaWNrZXQncyBhdXRvbWF0aWMgc3RhdGUgc3RvcmFnZSBlbnN1cmVzIHRoYXQgeW91ciB1c2VycyBjYW4gb3BlbiAKKyAgICAgICAgcGFnZXMgaW4gbmV3IHRhYnMgYW5kIHdpbmRvd3Mgd2l0aG91dCBjYXVzaW5nIHByb2JsZW1zLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLXR3by10aGlyZCI+CisgICAgICAgIDxoMz5Xb3JrIHdpdGggSmF2YVNjcmlwdCBhbmQgQ1NTPC9oMz4KKyAgICAgICAgPHA+R2xvYmFsIEphdmFTY3JpcHQgbGlicmFyaWVzIGFuZCBDU1Mgc3R5bGluZyBtaXggcHJvcGVybHkgd2l0aCAKKyAgICAgICAgY29tcG9uZW50IGxvY2FsIEphdmFTY3JpcHQgYW5kIENTUyByZXNvdXJjZXMuIFlvdSBjYW4gdXNlIGN1c3RvbSAKKyAgICAgICAgY29tcG9uZW50IGxpYnJhcmllcyB0aGF0IHNoaXAgd2l0aCBkZWZhdWx0IEphdmFTY3JpcHQgYmVoYXZpb3VyIGFuZCAKKyAgICAgICAgQ1NTIHN0eWxpbmcsIHdpdGhvdXQgaGF2aW5nIHRvIGRvIGFueXRoaW5nIHlvdXJzZWxmLiBDcmVhdGluZyBzdWNoIAorICAgICAgICBzZWxmLWNvbnRhaW5lZCBjb21wb25lbnQgbGlicmFyaWVzIGlzIGFzIGVhc3kgYXMgY3JlYXRpbmcgYSBKQVIgCisgICAgICAgIGZpbGUuPC9wPgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+VGVzdCB5b3VyIHBhZ2VzIGFuZCBjb21wb25lbnRzPC9oMz4KKyAgICAgICAgPHA+V2l0aCBXaWNrZXRUZXN0ZXIgeW91IGNhbiBhY2hpZXZlIHRlc3RpbmcgY292ZXJhZ2UgeW91ciBRQSAKKyAgICAgICAgZGVwYXJ0bWVudCBjYW4gb25seSBkcmVhbSBvZi4gVGVzdCB5b3VyIHBhZ2VzIHdpdGhvdXQgaGF2aW5nIHRvIHJ1biAKKyAgICAgICAgaW5zaWRlIGEgYnJvd3Nlciwgb3Igc3RhcnQgYSBjb250YWluZXIuIFRlc3QgeW91ciBjb21wb25lbnRzIGRpcmVjdGx5LCAKKyAgICAgICAgY2hlY2sgdGhlaXIgcmVuZGVyZWQgbWFya3VwIHRhZ3MsIGF0dHJpYnV0ZXMgYW5kIGNvbnRlbnRzIHdpdGggZWFzZS48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+SW5qZWN0aW9uIHN1cHBvcnQ8L2gzPgorICAgICAgICA8cD5JbmplY3QgeW91ciBzZXJ2aWNlcyBpbnRvIHlvdXIgcGFnZXMgYW5kIGNvbXBvbmVudHMgd2l0aCB0aGUgCisgICAgICAgIHRlY2hub2xvZ3kgb2YgeW91ciBjaG9vc2luZzogV2lja2V0IHByb3ZpZGVzIGludGVncmF0aW9uIHdpdGggQ0RJIAorICAgICAgICAoSlNSLTMwNSksIFNwcmluZyBhbmQgR3VpY2UuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPkphdmFFRSBpbnRlZ3JhdGlvbjwvaDM+CisgICAgICAgIDxwPklmIHlvdSBhcmUgdXNpbmcgdGhlIFdlYiBwcm9maWxlIG9mIEphdmFFRSA2IG9yIG5ld2VyLCB5b3UgY2FuIAorICAgICAgICBsZXZlcmFnZSBKUEEsIEVKQnMsIEJlYW4gVmFsaWRhdGlvbiBhbmQgQ0RJIHdpdGggV2lja2V0J3MgaW50ZWdyYXRpb25zIAorICAgICAgICBmb3IgdGhlc2Ugc3BlY2lmaWNhdGlvbnMuPC9wPgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzwvZGl2PgorPGhyIC8+CisKKwY6BkVUClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOCBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vNDAvMjAyNDg1M2E1NTVjMmJjYTQ1Y2U5NzIxNWI2NzMxNTI5NDNhZDk2NDg5MzM0YWVhZmE4NDcxOWYyM2E2ZDkKc2ltaWxhcml0eSBpbmRleCA4NSUKY29weSBmcm9tIC5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMDkvOGY0MDYwOTczNWRkOGEyNWIxZDk0MzllZmEyYjhkNWRjNGZkZGUwNDMwZTRiMjgxNDRmNjFjMjE1MDI2YTgKY29weSB0byAuamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzQwLzIwMjQ4NTNhNTU1YzJiY2E0NWNlOTcyMTViNjczMTUyOTQzYWQ5NjQ4OTMzNGFlYWZhODQ3MTlmMjNhNmQ5CmluZGV4IGY2MzFlNGIuLmM0NjA0YzggMTAwNjQ0Ci0tLSBhLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMDkvOGY0MDYwOTczNWRkOGEyNWIxZDk0MzllZmEyYjhkNWRjNGZkZGUwNDMwZTRiMjgxNDRmNjFjMjE1MDI2YTgKKysrIGIvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi80MC8yMDI0ODUzYTU1NWMyYmNhNDVjZTk3MjE1YjY3MzE1Mjk0M2FkOTY0ODkzMzRhZWFmYTg0NzE5ZjIzYTZkOQpAQCAtMSw0NiArMSw0MCBAQAotBAhJIgJyPTxkaXYgY2xhc3M9ImwtZnVsbCBsLWZpcnN0IHByZWFtYmxlIj4KKwQISSICvD48ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CiAgICAgPGgxIGlkPSJpbnRyb2R1Y3Rpb24iPkFubm91bmNpbmcgQXBhY2hlJm5ic3A7V2lja2V0Jm5ic3A7ODogV3JpdGUgTGVzcywgQWNoaWV2ZSBNb3JlPC9oMT4KKyAgICA8ZGl2PgorICAgICAgPGltZyBzcmM9Ii9pbWcvbG9nby5zdmciIGFsdD0iQXBhY2hlIFdpY2tldCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIC8+CisgICAgPC9kaXY+CiAgICAgPHA+Ci0gICAgICBUaGUgQXBhY2hlIFdpY2tldCBwcm9qZWN0IGFubm91bmNlcyB0aGUgOHRoIG1ham9yIHJlbGVhc2Ugb2YgdGhlIG9wZW4gc291cmNlIEphdmEgd2ViIGZyYW1ld29yayBzZXJ2aWNpbmcgd2Vic2l0ZXMgYW5kIGFwcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGdsb2JlIGZvciBvdmVyIGEgZGVjYWRlLiBXaXRoIHRoaXMgcmVsZWFzZSBXaWNrZXQgZW1icmFjZXMgSmF2YSA4IGlkaW9tcyBmdWxseSwgYWxsb3dpbmcgdGhlIHVzZSBvZiBsYW1iZGEgZXhwcmVzc2lvbnMgaW4gYWxsIHRoZSByaWdodCBwbGFjZXMuIFdpdGggV2lja2V0IDggeW91IGNhbiB3cml0ZSBmZXdlciwgZmFzdGVyIGFuZCBtb3JlIG1haW50YWluYWJsZSBjb2RlLgorICAgICAgVGhlIEFwYWNoZSBXaWNrZXQgcHJvamVjdCBhbm5vdW5jZXMgdGhlIDl0aCBtYWpvciByZWxlYXNlIG9mIHRoZSBvcGVuIHNvdXJjZSBKYXZhIHdlYiBmcmFtZXdvcmsgc2VydmljaW5nIHdlYnNpdGVzIGFuZCBhcHBsaWNhdGlvbnMgYWNyb3NzIHRoZSBnbG9iZSBzaW5jZSAyMDA0LiBCdWlsdCBvbiB0b3Agb2YgSmF2YSAxMSwgdGhpcyB2ZXJzaW9uIG9mIFdpY2tldCBicmluZ3Mgd2ViIGRldmVsb3BtZW50IGludG8gdGhlIG1vZGVybiBKYXZhIHdvcmxkLCBvZmZlcmluZyBhIGZ1bmRhbWVudGFsIHRvb2wgdG8ga2VlcCB5b3UgY29kZSB1cCB0byBkYXRlIHdpdGggSmF2YSBldm9sdXRpb24uCiAgICAgPC9wPgogPC9kaXY+CiA8ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KLSAgICA8aDM+QSBDYXJlZnVsIEFwcGxpY2F0aW9uIG9mIEphdmEgODwvaDM+Ci0KKyAgICA8aDM+QnJpbmcgdGhlIHdlYiBpbnRvIHRoZSBtb2Rlcm4gSmF2YSBlcmE8L2gzPgogICAgIDxwPgotICAgICAgV2hpbGUgcHJldmlvdXMgdmVyc2lvbnMgb2YgV2lja2V0IHdvcmsgd2VsbCB3aXRoIEphdmEgOCBhbmQgYmV5b25kLCB0aGUgV2lja2V0IEFQSSB3YXMgbm90IG9wdGltaXplZCB0byBtYWtlIGZ1bGwgdXNlIG9mIEphdmEgOCBpZGlvbXMuIEFmdGVyIGNhcmVmdWwgY29uc2lkZXJhdGlvbiBhbmQgdHJ5aW5nIG1hbnkgcGF0aHMgdG8gYWRvcHQgbmV3IHdheXMgb2YgY29tYmluaW5nIEphdmEgOCBhbmQgV2lja2V0LCB3ZSBmaW5hbGx5IHNldHRsZWQgb24gdGhlIGN1cnJlbnQgQVBJLgorICAgICBUaGUgcmVsZWFzZSBvZiBKYXZhIDkgaGFzIGJlZW4gYSB0dXJuaW5nIHBvaW50IGluIEphdmEgaGlzdG9yeSB3aGljaCBsYWlkIHRoZSBmb3VuZGF0aW9uIGZvciB0aGUgbW9kZXJuIEphdmEgZXJhLiBIb3dldmVyLCB0aGUgbWFnbml0dWRlIG9mIHRoaXMgY2hhbmdlIGhhcyBkaXNjb3VyYWdlIG1hbnkgZGV2ZWxvcGVycyBmcm9tIGxlYXZpbmcgdGhlIHNhZmUgaGFyYm9yIHJhcHByZXNlbnRlZCBieSBKYXZhIDguIFdpdGggV2lja2V0IDkgd2UgZmluYWxseSBoYXZlIGEgZnVuZGFtZW50YWwgdG9vbCB0byBtb3ZlIG9uIGFuZCBicmluZyBvdXIgd2ViIGFwcGxpY2F0aW9uIGludG8gdGhlIG5ldyBKYXZhIHdvcmxkLiAgCiAgICAgPC9wPgogICAgIDxwPgotICAgICAgSmF2YSA44oCZcyBuZXcgaWRpb21zIGFuZCB0eXBlcyBoYXZlIGJlZW4gYXBwbGllZCB0aHJvdWdob3V0IFdpY2tldOKAmXMgQVBJLiBMZWFybiBtb3JlIGFib3V0IHRoZSBkZXRhaWxzIGJlbG93LgorICAgICAgV2l0aCB0aGlzIHZlcnNpb24gV2lja2V0IGhhcyBiZWVuIGNvbXBsZXRlZCByZXZpc2l0ZWQgYW5kIGltcHJvdmVkIHRvIGVtYnJhY2UgbmV3IHRlY2hub2xvZ2llcyBsaWtlIEphdmEgbW9kdWxhcml6YXRpb24gYW5kIG5ldyBsaWJyYXJ5IGxpa2UgSlVuaXQgNS4KICAgICA8L3A+CiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgotICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+Ci0gICAgPGgzPkphdmEgOCsgUmVxdWlyZWQ8L2gzPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5TdGF5IHVwIHRvIGRhdGUgd2l0aCBKYXZhIHJlbGVhc2UgY3ljbGU8L2gzPgogICAgIDxwPgotICAgICAgU3RhcnRpbmcgd2l0aCBXaWNrZXQgOCB0aGUgbWluaW11bSByZXF1aXJlZCB2ZXJzaW9uIG9mIEphdmEgaXMgSmF2YSA4LiBBbGwgV2lja2V0IHN1cHBsaWVkIHByb2plY3RzIGhhdmUgYmVlbiB1cGdyYWRlZCB0byBKYXZhIDggYW5kIFdpY2tldCA4LCBhbmQgc2hvcnRseSBhbGwgYWN0aXZlIGNvbW11bml0eSBwcm9qZWN0cywgc3VjaCBhcyBXaWNrZXQgU3R1ZmYsIHdpbGwgZm9sbG93IHN1aXQuCi0gICAgPC9wPgotICAgIDxwPgotICAgICAgV2l0aCB0aGUgYWRvcHRpb24gb2YgSmF2YSA4IHdlIHdlcmUgYWJsZSB0byBwcm92aWRlIHN1cHBvcnQgZm9yIExhbWJkYXMuCisgICAgICBXaXRoIEphdmEgcmVsZWFzaW5nIGF0IGEgZmFzdGVyIHBoYXNlIGl0J3MgaW1wb3J0YW50IHRvIGtlZXAgYSBsaWJyYXJ5IHVwIHRvIGRhdGUgd2l0aCB0aGUgbGFzdGVzdCBjaGFuZ2VzIGludHJvZHVjZWQgaW4gdGhlIHBsYXRmb3JtIGFuZCBlbnN1cmUgaXQgd29ya3Mgd2l0aCB0aGUgbGF0ZXN0IEphdmEgcmVsZWFzZS4gV2lja2V0IGRvZXMgYWxsIG9mIHRoaXMgYnkgdGFraW5nIHBhcnQgdG8gdGhlIDxhIGhyZWY9Imh0dHBzOi8vd2lraS5vcGVuamRrLmphdmEubmV0L2Rpc3BsYXkvcXVhbGl0eS9RdWFsaXR5K091dHJlYWNoIiB0YXJnZXQ9Il9ibGFuayI+T3BlbkpESyBRdWFsaXR5IE91dHJlYWNoPC9hPiwgYW4gaW5pdGlhdGl2ZSBhaW1lZCB0byB0ZXN0IHBvcHVsYXIgT3BlbiBTb3VyY2UgcHJvamVjdHMgd2l0aCBib3RoIHRoZSBsYXRlc3QgT3BlbkpESyByZWxlYXNlIGFuZCB0aGUgRWFybHkgQWNjZXNzIHJlbGVhc2UuCiAgICAgPC9wPgogICA8L2Rpdj4KLSAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgotICAgIDxoMz5TZXJ2bGV0IDMuMSBSZXF1aXJlZDwvaDM+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPiBCZSByZWFkeSBmb3IgdGhlIG5leHQgSmF2YSBFbnRlcnByaXNlPC9oMz4KICAgICA8cD4KLSAgICAgIEFzIG9mIFdpY2tldCA4IHdlIG9ubHkgc3VwcG9ydCB0aGUgSmF2YSBTZXJ2bGV0IEFQSSAzLjEgKG9yIG5ld2VyKS4gVGhpcyBtZWFucyB0aGF0IHRvIHJ1biBhcHBsaWNhdGlvbnMgYnVpbHQgdXNpbmcgV2lja2V0IDggeW91IGhhdmUgdG8gcnVuIHlvdXIgYXBwbGljYXRpb24gaW4gYSBtb2Rlcm4gc2VydmVyIGxpa2UgVG9tY2F0IDgueCwgSmV0dHkgOS4xKyBvciBhIEphdmEgRUUgNyBjb21wYXRpYmxlIHNlcnZlci4KLSAgICA8L3A+Ci0gIDwvZGl2PgotICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+Ci0gICAgPGgzPkphdmEgRGF0ZS9UaW1lIEFQSTwvaDM+Ci0gICAgPHA+Ci0gICAgICBXaWNrZXQgOCBwcm92aWRlcyBvdXQtb2YtdGhlLWJveCBzdXBwb3J0IGZvciB0aGUgbmV3IHR5cGVzIGZvciBoYW5kbGluZyBkYXRlcyBpbiBKYXZhIDguIFRoZXNlIGNhbiBiZSBjb252ZXJ0ZWQsIHZhbGlkYXRlZCBhbmQgYm91bmQgdG8gY29tcG9uZW50cy4KKyAgICAgU2hvcnRseSBhZnRlciBKYXZhIDkgd2FzIHJlbGVhc2VkLCBPcmFjbGUgc3VibWl0dGVkIEphdmEgRUUgdG8gdGhlIEVjbGlwc2UgRm91bmRhdGlvbi4gQXMgc2lkZSBlZmZlY3Qgb2YgdGhpcyBvd25lciBjaGFuZ2UsIHRoZSBwYWNrYWdlIG5hbWUgJ2phdmF4JyBoYWQgdG8gYmUgbWlncmF0ZSB0byAnamFrYXJ0YScuIFdpY2tldCBoaXN0b3JpY2FsbHkgcHJvbW90ZWQgZGVjdXBsaW5nIGJldHdlZW4gSmF2YSBFRSBBUElzIGFuZCBhcHBsaWNhdGlvbiBjb2RlLCBoZW5jZSBtYWtpbmcgbXVjaCBtb3JlIGVhc2llciB0aGUgdHJhbnNpdGlvbiB0byB0aGUgZnV0dXJlIEphdmEgRW50ZXJwcmlzZSB2ZXJzaW9ucy4gCiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+CisKKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC10d28tdGhpcmQiPgogICAgIDxoMz5MYW1iZGFzIGluIEFsbCBUaGUgUmlnaHQgUGxhY2VzPC9oMz4KICAgICA8cD4KQEAgLTUyLDcgKzQ2LDcgQEAKICAgICA8L3A+CiAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDM+T3B0aW9uYWwgaXMgU29tZXRpbWVzIFJlcXVpcmVkPC9oMz4KICAgPC9kaXY+CkBAIC05MSw3ICs4NSw3IEBACiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgogICAgIDxoMz5Nb2RlbHMgYXMgRnVuY3Rpb25hbCBJbnRlcmZhY2U8L2gzPgogICAgIDxwPgpAQCAtMTE4LDcgKzExMiw3IEBACiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgogICAgIDxoMz5ObyBSZXdyaXRlIE5lY2Vzc2FyeTwvaDM+CiAgICAgPHA+CkBAIC0xNDEsNyArMTM1LDcgQEAKICAgICA8L3A+CiAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDI+R2V0dGluZyBTdGFydGVkIHdpdGggV2lja2V0IDg8L2gyPgogICAgIDxwPgpAQCAtMTg4LDcgKzE4Miw3IEBACiAgICAgd2ViIGFwcGxpY2F0aW9uLjwvcD4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2phdmEtd2lja2V0LWh0bWw1LnBuZyIgY2xhc3M9ImwtZnVsbCIgLz4KICAgICAgICAgPGgzPkp1c3QgSmF2YSAmYW1wOyBIVE1MPC9oMz4KQEAgLTIxMiw3ICsyMDYsNyBAQAogICAgICAgICBvZiBiYXNpYyBBamF4IGNvbXBvbmVudHMuPC9wPgogICAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxoMz5PcGVuIFNvdXJjZSB3aXRoIEFwYWNoZSBMaWNlbnNlPC9oMz4KICAgICAgICAgPHA+U2luY2UgaXRzIGluY2VwdGlvbiBpbiAyMDA0IFdpY2tldCBoYXMgYmVlbiBhbiBvcGVuIHNvdXJjZQpAQCAtMjM0LDcgKzIyOCw3IEBACiAgICAgICAgIHBhZ2UsIG9yIGV2ZW4gY29tcG9uZW50IGxldmVsLjwvcD4KICAgICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aDM+TXVsdGktdGFiIGFuZCB3aW5kb3cgc3VwcG9ydDwvaDM+CiAgICAgICAgIDxwPk5vIG1vcmUgcGFpbiB3aGlsZSBrZWVwaW5nIHRhcHMgb24gbXVsdGlwbGUgdGFicyBhbmQgd2luZG93cy4gCkBAIC0yNTEsNyArMjQ1LDcgQEAKICAgICAgICAgZmlsZS48L3A+CiAgICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGgzPlRlc3QgeW91ciBwYWdlcyBhbmQgY29tcG9uZW50czwvaDM+CiAgICAgICAgIDxwPldpdGggV2lja2V0VGVzdGVyIHlvdSBjYW4gYWNoaWV2ZSB0ZXN0aW5nIGNvdmVyYWdlIHlvdXIgUUEgCkBAIC0yNzQsNCArMjY4LDYgQEAKIDwvZGl2PgogPGRpdiBjbGFzcz0ibC1maXJzdCI+CiA8L2Rpdj4KKzxociAvPgorCiAGOgZFVApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMDkvOGY0MDYwOTczNWRkOGEyNWIxZDk0MzllZmEyYjhkNWRjNGZkZGUwNDMwZTRiMjgxNDRmNjFjMjE1MDI2YTggYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzQ4LzlmYWNjOTYxNDUyNjkwZjIwZWZjMGQyZWVlYWYwYTgxN2U2NWRjMjA5MjhmMWEyNzAxNTUzNWY0MGQ2YTM3CnNpbWlsYXJpdHkgaW5kZXggOTYlCmNvcHkgZnJvbSAuamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4CmNvcHkgdG8gLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi80OC85ZmFjYzk2MTQ1MjY5MGYyMGVmYzBkMmVlZWFmMGE4MTdlNjVkYzIwOTI4ZjFhMjcwMTU1MzVmNDBkNmEzNwppbmRleCBmNjMxZTRiLi4wNjk0ZWFkIDEwMDY0NAotLS0gYS8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4CisrKyBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vNDgvOWZhY2M5NjE0NTI2OTBmMjBlZmMwZDJlZWVhZjBhODE3ZTY1ZGMyMDkyOGYxYTI3MDE1NTM1ZjQwZDZhMzcKQEAgLTEsOCArMSwxMSBAQAotBAhJIgJyPTxkaXYgY2xhc3M9ImwtZnVsbCBsLWZpcnN0IHByZWFtYmxlIj4KKwQISSICID48ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CiAgICAgPGgxIGlkPSJpbnRyb2R1Y3Rpb24iPkFubm91bmNpbmcgQXBhY2hlJm5ic3A7V2lja2V0Jm5ic3A7ODogV3JpdGUgTGVzcywgQWNoaWV2ZSBNb3JlPC9oMT4KKyAgICA8ZGl2PgorICAgIDxpbWcgc3JjPSIvaW1nL2xvZ28uc3ZnIiBhbHQ9IkFwYWNoZSBXaWNrZXQiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiAvPgogICAgIDxwPgogICAgICAgVGhlIEFwYWNoZSBXaWNrZXQgcHJvamVjdCBhbm5vdW5jZXMgdGhlIDh0aCBtYWpvciByZWxlYXNlIG9mIHRoZSBvcGVuIHNvdXJjZSBKYXZhIHdlYiBmcmFtZXdvcmsgc2VydmljaW5nIHdlYnNpdGVzIGFuZCBhcHBsaWNhdGlvbnMgYWNyb3NzIHRoZSBnbG9iZSBmb3Igb3ZlciBhIGRlY2FkZS4gV2l0aCB0aGlzIHJlbGVhc2UgV2lja2V0IGVtYnJhY2VzIEphdmEgOCBpZGlvbXMgZnVsbHksIGFsbG93aW5nIHRoZSB1c2Ugb2YgbGFtYmRhIGV4cHJlc3Npb25zIGluIGFsbCB0aGUgcmlnaHQgcGxhY2VzLiBXaXRoIFdpY2tldCA4IHlvdSBjYW4gd3JpdGUgZmV3ZXIsIGZhc3RlciBhbmQgbW9yZSBtYWludGFpbmFibGUgY29kZS4KICAgICA8L3A+CisgIDwvZGl2PgogPC9kaXY+CiA8ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KQEAgLTE3LDcgKzIwLDcgQEAKICAgPC9kaXY+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICA8aDM+SmF2YSA4KyBSZXF1aXJlZDwvaDM+CiAgICAgPHA+CkBAIC00MCw3ICs0Myw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtdHdvLXRoaXJkIj4KICAgICA8aDM+TGFtYmRhcyBpbiBBbGwgVGhlIFJpZ2h0IFBsYWNlczwvaDM+CiAgICAgPHA+CkBAIC01Miw3ICs1NSw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgzPk9wdGlvbmFsIGlzIFNvbWV0aW1lcyBSZXF1aXJlZDwvaDM+CiAgIDwvZGl2PgpAQCAtOTEsNyArOTQsNyBAQAogICA8L2Rpdj4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDM+TW9kZWxzIGFzIEZ1bmN0aW9uYWwgSW50ZXJmYWNlPC9oMz4KICAgICA8cD4KQEAgLTExOCw3ICsxMjEsNyBAQAogICA8L2Rpdj4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KICAgICA8aDM+Tm8gUmV3cml0ZSBOZWNlc3Nhcnk8L2gzPgogICAgIDxwPgpAQCAtMTQxLDcgKzE0NCw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgyPkdldHRpbmcgU3RhcnRlZCB3aXRoIFdpY2tldCA4PC9oMj4KICAgICA8cD4KQEAgLTE4OCw3ICsxOTEsNyBAQAogICAgIHdlYiBhcHBsaWNhdGlvbi48L3A+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aW1nIHNyYz0iL2ltZy9qYXZhLXdpY2tldC1odG1sNS5wbmciIGNsYXNzPSJsLWZ1bGwiIC8+CiAgICAgICAgIDxoMz5KdXN0IEphdmEgJmFtcDsgSFRNTDwvaDM+CkBAIC0yMTIsNyArMjE1LDcgQEAKICAgICAgICAgb2YgYmFzaWMgQWpheCBjb21wb25lbnRzLjwvcD4KICAgICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aDM+T3BlbiBTb3VyY2Ugd2l0aCBBcGFjaGUgTGljZW5zZTwvaDM+CiAgICAgICAgIDxwPlNpbmNlIGl0cyBpbmNlcHRpb24gaW4gMjAwNCBXaWNrZXQgaGFzIGJlZW4gYW4gb3BlbiBzb3VyY2UKQEAgLTIzNCw3ICsyMzcsNyBAQAogICAgICAgICBwYWdlLCBvciBldmVuIGNvbXBvbmVudCBsZXZlbC48L3A+CiAgICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGgzPk11bHRpLXRhYiBhbmQgd2luZG93IHN1cHBvcnQ8L2gzPgogICAgICAgICA8cD5ObyBtb3JlIHBhaW4gd2hpbGUga2VlcGluZyB0YXBzIG9uIG11bHRpcGxlIHRhYnMgYW5kIHdpbmRvd3MuIApAQCAtMjUxLDcgKzI1NCw3IEBACiAgICAgICAgIGZpbGUuPC9wPgogICAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxoMz5UZXN0IHlvdXIgcGFnZXMgYW5kIGNvbXBvbmVudHM8L2gzPgogICAgICAgICA8cD5XaXRoIFdpY2tldFRlc3RlciB5b3UgY2FuIGFjaGlldmUgdGVzdGluZyBjb3ZlcmFnZSB5b3VyIFFBIApAQCAtMjc0LDQgKzI3Nyw2IEBACiA8L2Rpdj4KIDxkaXYgY2xhc3M9ImwtZmlyc3QiPgogPC9kaXY+Cis8aHIgLz4KKwogBjoGRVQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4IGIvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi80ZS8wOTQ5ODQ0ZDRiNTM5OTc4ODY5MTU4NzZmNTUyOTY2YTRhMzYxNjA4MmVlY2ZlNmE1YzQ2NzUxMWRjYWI3NQpzaW1pbGFyaXR5IGluZGV4IDk3JQpyZW5hbWUgZnJvbSAuamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4CnJlbmFtZSB0byAuamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzRlLzA5NDk4NDRkNGI1Mzk5Nzg4NjkxNTg3NmY1NTI5NjZhNGEzNjE2MDgyZWVjZmU2YTVjNDY3NTExZGNhYjc1CmluZGV4IGY2MzFlNGIuLjI5MGVhNzAgMTAwNjQ0Ci0tLSBhLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMDkvOGY0MDYwOTczNWRkOGEyNWIxZDk0MzllZmEyYjhkNWRjNGZkZGUwNDMwZTRiMjgxNDRmNjFjMjE1MDI2YTgKKysrIGIvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi80ZS8wOTQ5ODQ0ZDRiNTM5OTc4ODY5MTU4NzZmNTUyOTY2YTRhMzYxNjA4MmVlY2ZlNmE1YzQ2NzUxMWRjYWI3NQpAQCAtMSw1ICsxLDYgQEAKLQQISSICcj08ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CisECEkiAsw9PGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgogICAgIDxoMSBpZD0iaW50cm9kdWN0aW9uIj5Bbm5vdW5jaW5nIEFwYWNoZSZuYnNwO1dpY2tldCZuYnNwOzg6IFdyaXRlIExlc3MsIEFjaGlldmUgTW9yZTwvaDE+CisgICAgPHA+PC9wPgogICAgIDxwPgogICAgICAgVGhlIEFwYWNoZSBXaWNrZXQgcHJvamVjdCBhbm5vdW5jZXMgdGhlIDh0aCBtYWpvciByZWxlYXNlIG9mIHRoZSBvcGVuIHNvdXJjZSBKYXZhIHdlYiBmcmFtZXdvcmsgc2VydmljaW5nIHdlYnNpdGVzIGFuZCBhcHBsaWNhdGlvbnMgYWNyb3NzIHRoZSBnbG9iZSBmb3Igb3ZlciBhIGRlY2FkZS4gV2l0aCB0aGlzIHJlbGVhc2UgV2lja2V0IGVtYnJhY2VzIEphdmEgOCBpZGlvbXMgZnVsbHksIGFsbG93aW5nIHRoZSB1c2Ugb2YgbGFtYmRhIGV4cHJlc3Npb25zIGluIGFsbCB0aGUgcmlnaHQgcGxhY2VzLiBXaXRoIFdpY2tldCA4IHlvdSBjYW4gd3JpdGUgZmV3ZXIsIGZhc3RlciBhbmQgbW9yZSBtYWludGFpbmFibGUgY29kZS4KICAgICA8L3A+CkBAIC0xNyw3ICsxOCw3IEBACiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgPGgzPkphdmEgOCsgUmVxdWlyZWQ8L2gzPgogICAgIDxwPgpAQCAtNDAsNyArNDEsNyBAQAogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLXR3by10aGlyZCI+CiAgICAgPGgzPkxhbWJkYXMgaW4gQWxsIFRoZSBSaWdodCBQbGFjZXM8L2gzPgogICAgIDxwPgpAQCAtNTIsNyArNTMsNyBAQAogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgogICAgIDxoMz5PcHRpb25hbCBpcyBTb21ldGltZXMgUmVxdWlyZWQ8L2gzPgogICA8L2Rpdj4KQEAgLTkxLDcgKzkyLDcgQEAKICAgPC9kaXY+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgzPk1vZGVscyBhcyBGdW5jdGlvbmFsIEludGVyZmFjZTwvaDM+CiAgICAgPHA+CkBAIC0xMTgsNyArMTE5LDcgQEAKICAgPC9kaXY+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CiAgICAgPGgzPk5vIFJld3JpdGUgTmVjZXNzYXJ5PC9oMz4KICAgICA8cD4KQEAgLTE0MSw3ICsxNDIsNyBAQAogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgogICAgIDxoMj5HZXR0aW5nIFN0YXJ0ZWQgd2l0aCBXaWNrZXQgODwvaDI+CiAgICAgPHA+CkBAIC0xODgsNyArMTg5LDcgQEAKICAgICB3ZWIgYXBwbGljYXRpb24uPC9wPgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGltZyBzcmM9Ii9pbWcvamF2YS13aWNrZXQtaHRtbDUucG5nIiBjbGFzcz0ibC1mdWxsIiAvPgogICAgICAgICA8aDM+SnVzdCBKYXZhICZhbXA7IEhUTUw8L2gzPgpAQCAtMjEyLDcgKzIxMyw3IEBACiAgICAgICAgIG9mIGJhc2ljIEFqYXggY29tcG9uZW50cy48L3A+CiAgICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGgzPk9wZW4gU291cmNlIHdpdGggQXBhY2hlIExpY2Vuc2U8L2gzPgogICAgICAgICA8cD5TaW5jZSBpdHMgaW5jZXB0aW9uIGluIDIwMDQgV2lja2V0IGhhcyBiZWVuIGFuIG9wZW4gc291cmNlCkBAIC0yMzQsNyArMjM1LDcgQEAKICAgICAgICAgcGFnZSwgb3IgZXZlbiBjb21wb25lbnQgbGV2ZWwuPC9wPgogICAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxoMz5NdWx0aS10YWIgYW5kIHdpbmRvdyBzdXBwb3J0PC9oMz4KICAgICAgICAgPHA+Tm8gbW9yZSBwYWluIHdoaWxlIGtlZXBpbmcgdGFwcyBvbiBtdWx0aXBsZSB0YWJzIGFuZCB3aW5kb3dzLiAKQEAgLTI1MSw3ICsyNTIsNyBAQAogICAgICAgICBmaWxlLjwvcD4KICAgICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aDM+VGVzdCB5b3VyIHBhZ2VzIGFuZCBjb21wb25lbnRzPC9oMz4KICAgICAgICAgPHA+V2l0aCBXaWNrZXRUZXN0ZXIgeW91IGNhbiBhY2hpZXZlIHRlc3RpbmcgY292ZXJhZ2UgeW91ciBRQSAKQEAgLTI3NCw0ICsyNzUsNiBAQAogPC9kaXY+CiA8ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KIDwvZGl2PgorPGhyIC8+CisKIAY6BkVUClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOCBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vNTYvMjI4Y2M0YzkxZTMyMzhmOGRlNjNmMWY0NjRiNjRiMzNkZDkyNmRkNWIxYjVhOWU3MGFlODgwNWRmMTNlMzEKc2ltaWxhcml0eSBpbmRleCA4NSUKY29weSBmcm9tIC5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMDkvOGY0MDYwOTczNWRkOGEyNWIxZDk0MzllZmEyYjhkNWRjNGZkZGUwNDMwZTRiMjgxNDRmNjFjMjE1MDI2YTgKY29weSB0byAuamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzU2LzIyOGNjNGM5MWUzMjM4ZjhkZTYzZjFmNDY0YjY0YjMzZGQ5MjZkZDViMWI1YTllNzBhZTg4MDVkZjEzZTMxCmluZGV4IGY2MzFlNGIuLjdjZDc3NjEgMTAwNjQ0Ci0tLSBhLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMDkvOGY0MDYwOTczNWRkOGEyNWIxZDk0MzllZmEyYjhkNWRjNGZkZGUwNDMwZTRiMjgxNDRmNjFjMjE1MDI2YTgKKysrIGIvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi81Ni8yMjhjYzRjOTFlMzIzOGY4ZGU2M2YxZjQ2NGI2NGIzM2RkOTI2ZGQ1YjFiNWE5ZTcwYWU4ODA1ZGYxM2UzMQpAQCAtMSw0NiArMSw0MCBAQAotBAhJIgJyPTxkaXYgY2xhc3M9ImwtZnVsbCBsLWZpcnN0IHByZWFtYmxlIj4KKwQISSICvD48ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CiAgICAgPGgxIGlkPSJpbnRyb2R1Y3Rpb24iPkFubm91bmNpbmcgQXBhY2hlJm5ic3A7V2lja2V0Jm5ic3A7ODogV3JpdGUgTGVzcywgQWNoaWV2ZSBNb3JlPC9oMT4KKyAgICA8ZGl2PgorICAgICAgPGltZyBzcmM9Ii9pbWcvbG9nby5zdmciIGFsdD0iQXBhY2hlIFdpY2tldCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIC8+CisgICAgPC9kaXY+CiAgICAgPHA+Ci0gICAgICBUaGUgQXBhY2hlIFdpY2tldCBwcm9qZWN0IGFubm91bmNlcyB0aGUgOHRoIG1ham9yIHJlbGVhc2Ugb2YgdGhlIG9wZW4gc291cmNlIEphdmEgd2ViIGZyYW1ld29yayBzZXJ2aWNpbmcgd2Vic2l0ZXMgYW5kIGFwcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGdsb2JlIGZvciBvdmVyIGEgZGVjYWRlLiBXaXRoIHRoaXMgcmVsZWFzZSBXaWNrZXQgZW1icmFjZXMgSmF2YSA4IGlkaW9tcyBmdWxseSwgYWxsb3dpbmcgdGhlIHVzZSBvZiBsYW1iZGEgZXhwcmVzc2lvbnMgaW4gYWxsIHRoZSByaWdodCBwbGFjZXMuIFdpdGggV2lja2V0IDggeW91IGNhbiB3cml0ZSBmZXdlciwgZmFzdGVyIGFuZCBtb3JlIG1haW50YWluYWJsZSBjb2RlLgorICAgICAgVGhlIEFwYWNoZSBXaWNrZXQgcHJvamVjdCBhbm5vdW5jZXMgdGhlIDl0aCBtYWpvciByZWxlYXNlIG9mIHRoZSBvcGVuIHNvdXJjZSBKYXZhIHdlYiBmcmFtZXdvcmsgc2VydmljaW5nIHdlYnNpdGVzIGFuZCBhcHBsaWNhdGlvbnMgYWNyb3NzIHRoZSBnbG9iZSBzaW5jZSAyMDA0LiBCdWlsdCBvbiB0b3Agb2YgSmF2YSAxMSwgdGhpcyB2ZXJzaW9uIG9mIFdpY2tldCBicmluZ3Mgd2ViIGRldmVsb3BtZW50IGludG8gdGhlIG1vZGVybiBKYXZhIHdvcmxkLCBvZmZlcmluZyBhIGZ1bmRhbWVudGFsIHRvb2wgdG8ga2VlcCB5b3UgY29kZSB1cCB0byBkYXRlIHdpdGggSmF2YSBldm9sdXRpb24uCiAgICAgPC9wPgogPC9kaXY+CiA8ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KLSAgICA8aDM+QSBDYXJlZnVsIEFwcGxpY2F0aW9uIG9mIEphdmEgODwvaDM+Ci0KKyAgICA8aDM+QnJpbmcgdGhlIHdlYiBpbnRvIHRoZSBtb2Rlcm4gSmF2YSBlcmE8L2gzPgogICAgIDxwPgotICAgICAgV2hpbGUgcHJldmlvdXMgdmVyc2lvbnMgb2YgV2lja2V0IHdvcmsgd2VsbCB3aXRoIEphdmEgOCBhbmQgYmV5b25kLCB0aGUgV2lja2V0IEFQSSB3YXMgbm90IG9wdGltaXplZCB0byBtYWtlIGZ1bGwgdXNlIG9mIEphdmEgOCBpZGlvbXMuIEFmdGVyIGNhcmVmdWwgY29uc2lkZXJhdGlvbiBhbmQgdHJ5aW5nIG1hbnkgcGF0aHMgdG8gYWRvcHQgbmV3IHdheXMgb2YgY29tYmluaW5nIEphdmEgOCBhbmQgV2lja2V0LCB3ZSBmaW5hbGx5IHNldHRsZWQgb24gdGhlIGN1cnJlbnQgQVBJLgorICAgICBUaGUgcmVsZWFzZSBvZiBKYXZhIDkgaGFzIGJlZW4gYSB0dXJuaW5nIHBvaW50IGluIEphdmEgaGlzdG9yeSB3aGljaCBsYWlkIHRoZSBmb3VuZGF0aW9uIGZvciB0aGUgbW9kZXJuIEphdmEgZXJhLiBIb3dldmVyLCB0aGUgbWFnbml0dWRlIG9mIHRoaXMgY2hhbmdlIGhhcyBkaXNjb3VyYWdlIG1hbnkgZGV2ZWxvcGVycyBmcm9tIGxlYXZpbmcgdGhlIHNhZmUgaGFyYm9yIHJhcHByZXNlbnRlZCBieSBKYXZhIDguIFdpdGggV2lja2V0IDkgd2UgZmluYWxseSBoYXZlIGEgZnVuZGFtZW50YWwgdG9vbCB0byBtb3ZlIG9uIGFuZCBicmluZyBvdXIgd2ViIGFwcGxpY2F0aW9uIGludG8gdGhlIG5ldyBKYXZhIHdvcmxkLiAgCiAgICAgPC9wPgogICAgIDxwPgotICAgICAgSmF2YSA44oCZcyBuZXcgaWRpb21zIGFuZCB0eXBlcyBoYXZlIGJlZW4gYXBwbGllZCB0aHJvdWdob3V0IFdpY2tldOKAmXMgQVBJLiBMZWFybiBtb3JlIGFib3V0IHRoZSBkZXRhaWxzIGJlbG93LgorICAgICAgV2l0aCB0aGlzIHZlcnNpb24gV2lja2V0IGhhcyBiZWVuIGNvbXBsZXRlZCByZXZpc2l0ZWQgYW5kIGltcHJvdmVkIHRvIGVtYnJhY2UgbmV3IHRlY2hub2xvZ2llcyBsaWtlIEphdmEgbW9kdWxhcml6YXRpb24gYW5kIG5ldyBsaWJyYXJ5IGxpa2UgSlVuaXQgNS4KICAgICA8L3A+CiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgotICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+Ci0gICAgPGgzPkphdmEgOCsgUmVxdWlyZWQ8L2gzPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5TdGF5IHVwIHRvIGRhdGUgd2l0aCBKYXZhIHJlbGVhc2UgY3ljbGU8L2gzPgogICAgIDxwPgotICAgICAgU3RhcnRpbmcgd2l0aCBXaWNrZXQgOCB0aGUgbWluaW11bSByZXF1aXJlZCB2ZXJzaW9uIG9mIEphdmEgaXMgSmF2YSA4LiBBbGwgV2lja2V0IHN1cHBsaWVkIHByb2plY3RzIGhhdmUgYmVlbiB1cGdyYWRlZCB0byBKYXZhIDggYW5kIFdpY2tldCA4LCBhbmQgc2hvcnRseSBhbGwgYWN0aXZlIGNvbW11bml0eSBwcm9qZWN0cywgc3VjaCBhcyBXaWNrZXQgU3R1ZmYsIHdpbGwgZm9sbG93IHN1aXQuCi0gICAgPC9wPgotICAgIDxwPgotICAgICAgV2l0aCB0aGUgYWRvcHRpb24gb2YgSmF2YSA4IHdlIHdlcmUgYWJsZSB0byBwcm92aWRlIHN1cHBvcnQgZm9yIExhbWJkYXMuCisgICAgICBXaXRoIEphdmEgcmVsZWFzaW5nIGF0IGEgZmFzdGVyIHBoYXNlIGl0J3MgaW1wb3J0YW50IHRvIGtlZXAgYSBsaWJyYXJ5IHVwIHRvIGRhdGUgd2l0aCB0aGUgbGFzdGVzdCBjaGFuZ2VzIGludHJvZHVjZWQgaW4gdGhlIHBsYXRmb3JtIGFuZCBlbnN1cmUgaXQgd29ya3Mgd2l0aCB0aGUgbGF0ZXN0IEphdmEgcmVsZWFzZS4gV2lja2V0IGRvZXMgYWxsIG9mIHRoaXMgYnkgdGFraW5nIHBhcnQgdG8gdGhlIDxhIGhyZWY9Imh0dHBzOi8vd2lraS5vcGVuamRrLmphdmEubmV0L2Rpc3BsYXkvcXVhbGl0eS9RdWFsaXR5K091dHJlYWNoIiBfdGFyZ2V0PSJibGFuayI+T3BlbkpESyBRdWFsaXR5IE91dHJlYWNoPC9hPiwgYW4gaW5pdGlhdGl2ZSBhaW1lZCB0byB0ZXN0IHBvcHVsYXIgT3BlbiBTb3VyY2UgcHJvamVjdHMgd2l0aCBib3RoIHRoZSBsYXRlc3QgT3BlbkpESyByZWxlYXNlIGFuZCB0aGUgRWFybHkgQWNjZXNzIHJlbGVhc2UuCiAgICAgPC9wPgogICA8L2Rpdj4KLSAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgotICAgIDxoMz5TZXJ2bGV0IDMuMSBSZXF1aXJlZDwvaDM+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPiBCZSByZWFkeSBmb3IgdGhlIG5leHQgSmF2YSBFbnRlcnByaXNlPC9oMz4KICAgICA8cD4KLSAgICAgIEFzIG9mIFdpY2tldCA4IHdlIG9ubHkgc3VwcG9ydCB0aGUgSmF2YSBTZXJ2bGV0IEFQSSAzLjEgKG9yIG5ld2VyKS4gVGhpcyBtZWFucyB0aGF0IHRvIHJ1biBhcHBsaWNhdGlvbnMgYnVpbHQgdXNpbmcgV2lja2V0IDggeW91IGhhdmUgdG8gcnVuIHlvdXIgYXBwbGljYXRpb24gaW4gYSBtb2Rlcm4gc2VydmVyIGxpa2UgVG9tY2F0IDgueCwgSmV0dHkgOS4xKyBvciBhIEphdmEgRUUgNyBjb21wYXRpYmxlIHNlcnZlci4KLSAgICA8L3A+Ci0gIDwvZGl2PgotICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+Ci0gICAgPGgzPkphdmEgRGF0ZS9UaW1lIEFQSTwvaDM+Ci0gICAgPHA+Ci0gICAgICBXaWNrZXQgOCBwcm92aWRlcyBvdXQtb2YtdGhlLWJveCBzdXBwb3J0IGZvciB0aGUgbmV3IHR5cGVzIGZvciBoYW5kbGluZyBkYXRlcyBpbiBKYXZhIDguIFRoZXNlIGNhbiBiZSBjb252ZXJ0ZWQsIHZhbGlkYXRlZCBhbmQgYm91bmQgdG8gY29tcG9uZW50cy4KKyAgICAgU2hvcnRseSBhZnRlciBKYXZhIDkgd2FzIHJlbGVhc2VkLCBPcmFjbGUgc3VibWl0dGVkIEphdmEgRUUgdG8gdGhlIEVjbGlwc2UgRm91bmRhdGlvbi4gQXMgc2lkZSBlZmZlY3Qgb2YgdGhpcyBvd25lciBjaGFuZ2UsIHRoZSBwYWNrYWdlIG5hbWUgJ2phdmF4JyBoYWQgdG8gYmUgbWlncmF0ZSB0byAnamFrYXJ0YScuIFdpY2tldCBoaXN0b3JpY2FsbHkgcHJvbW90ZWQgZGVjdXBsaW5nIGJldHdlZW4gSmF2YSBFRSBBUElzIGFuZCBhcHBsaWNhdGlvbiBjb2RlLCBoZW5jZSBtYWtpbmcgbXVjaCBtb3JlIGVhc2llciB0aGUgdHJhbnNpdGlvbiB0byB0aGUgZnV0dXJlIEphdmEgRW50ZXJwcmlzZSB2ZXJzaW9ucy4gCiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+CisKKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC10d28tdGhpcmQiPgogICAgIDxoMz5MYW1iZGFzIGluIEFsbCBUaGUgUmlnaHQgUGxhY2VzPC9oMz4KICAgICA8cD4KQEAgLTUyLDcgKzQ2LDcgQEAKICAgICA8L3A+CiAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDM+T3B0aW9uYWwgaXMgU29tZXRpbWVzIFJlcXVpcmVkPC9oMz4KICAgPC9kaXY+CkBAIC05MSw3ICs4NSw3IEBACiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgogICAgIDxoMz5Nb2RlbHMgYXMgRnVuY3Rpb25hbCBJbnRlcmZhY2U8L2gzPgogICAgIDxwPgpAQCAtMTE4LDcgKzExMiw3IEBACiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgogICAgIDxoMz5ObyBSZXdyaXRlIE5lY2Vzc2FyeTwvaDM+CiAgICAgPHA+CkBAIC0xNDEsNyArMTM1LDcgQEAKICAgICA8L3A+CiAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDI+R2V0dGluZyBTdGFydGVkIHdpdGggV2lja2V0IDg8L2gyPgogICAgIDxwPgpAQCAtMTg4LDcgKzE4Miw3IEBACiAgICAgd2ViIGFwcGxpY2F0aW9uLjwvcD4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2phdmEtd2lja2V0LWh0bWw1LnBuZyIgY2xhc3M9ImwtZnVsbCIgLz4KICAgICAgICAgPGgzPkp1c3QgSmF2YSAmYW1wOyBIVE1MPC9oMz4KQEAgLTIxMiw3ICsyMDYsNyBAQAogICAgICAgICBvZiBiYXNpYyBBamF4IGNvbXBvbmVudHMuPC9wPgogICAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxoMz5PcGVuIFNvdXJjZSB3aXRoIEFwYWNoZSBMaWNlbnNlPC9oMz4KICAgICAgICAgPHA+U2luY2UgaXRzIGluY2VwdGlvbiBpbiAyMDA0IFdpY2tldCBoYXMgYmVlbiBhbiBvcGVuIHNvdXJjZQpAQCAtMjM0LDcgKzIyOCw3IEBACiAgICAgICAgIHBhZ2UsIG9yIGV2ZW4gY29tcG9uZW50IGxldmVsLjwvcD4KICAgICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aDM+TXVsdGktdGFiIGFuZCB3aW5kb3cgc3VwcG9ydDwvaDM+CiAgICAgICAgIDxwPk5vIG1vcmUgcGFpbiB3aGlsZSBrZWVwaW5nIHRhcHMgb24gbXVsdGlwbGUgdGFicyBhbmQgd2luZG93cy4gCkBAIC0yNTEsNyArMjQ1LDcgQEAKICAgICAgICAgZmlsZS48L3A+CiAgICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGgzPlRlc3QgeW91ciBwYWdlcyBhbmQgY29tcG9uZW50czwvaDM+CiAgICAgICAgIDxwPldpdGggV2lja2V0VGVzdGVyIHlvdSBjYW4gYWNoaWV2ZSB0ZXN0aW5nIGNvdmVyYWdlIHlvdXIgUUEgCkBAIC0yNzQsNCArMjY4LDYgQEAKIDwvZGl2PgogPGRpdiBjbGFzcz0ibC1maXJzdCI+CiA8L2Rpdj4KKzxociAvPgorCiAGOgZFVApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMDkvOGY0MDYwOTczNWRkOGEyNWIxZDk0MzllZmEyYjhkNWRjNGZkZGUwNDMwZTRiMjgxNDRmNjFjMjE1MDI2YTggYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzY0LzllZWE5Mjc1NzUxZjcwZGU5ZTIwZTQzZWI1OGFmOWYxNWQ5NzkxZDBhNWE5ZThkZmJmMTJiODBkYWY5MDYwCnNpbWlsYXJpdHkgaW5kZXggOTYlCmNvcHkgZnJvbSAuamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4CmNvcHkgdG8gLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi82NC85ZWVhOTI3NTc1MWY3MGRlOWUyMGU0M2ViNThhZjlmMTVkOTc5MWQwYTVhOWU4ZGZiZjEyYjgwZGFmOTA2MAppbmRleCBmNjMxZTRiLi43OWU0MmRlIDEwMDY0NAotLS0gYS8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4CisrKyBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vNjQvOWVlYTkyNzU3NTFmNzBkZTllMjBlNDNlYjU4YWY5ZjE1ZDk3OTFkMGE1YTllOGRmYmYxMmI4MGRhZjkwNjAKQEAgLTEsNSArMSw2IEBACi0ECEkiAnI9PGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgorBAhJIgIWPjxkaXYgY2xhc3M9ImwtZnVsbCBsLWZpcnN0IHByZWFtYmxlIj4KICAgICA8aDEgaWQ9ImludHJvZHVjdGlvbiI+QW5ub3VuY2luZyBBcGFjaGUmbmJzcDtXaWNrZXQmbmJzcDs4OiBXcml0ZSBMZXNzLCBBY2hpZXZlIE1vcmU8L2gxPgorICAgIDxwPjxpbWcgc3JjPSIvaW1nL2xvZ28uc3ZnIiBhbHQ9IkFwYWNoZSBXaWNrZXQiIHN0eWxlPSJtYXgtaGVpZ2h0OiAyMDBweDsiIC8+PC9wPgogICAgIDxwPgogICAgICAgVGhlIEFwYWNoZSBXaWNrZXQgcHJvamVjdCBhbm5vdW5jZXMgdGhlIDh0aCBtYWpvciByZWxlYXNlIG9mIHRoZSBvcGVuIHNvdXJjZSBKYXZhIHdlYiBmcmFtZXdvcmsgc2VydmljaW5nIHdlYnNpdGVzIGFuZCBhcHBsaWNhdGlvbnMgYWNyb3NzIHRoZSBnbG9iZSBmb3Igb3ZlciBhIGRlY2FkZS4gV2l0aCB0aGlzIHJlbGVhc2UgV2lja2V0IGVtYnJhY2VzIEphdmEgOCBpZGlvbXMgZnVsbHksIGFsbG93aW5nIHRoZSB1c2Ugb2YgbGFtYmRhIGV4cHJlc3Npb25zIGluIGFsbCB0aGUgcmlnaHQgcGxhY2VzLiBXaXRoIFdpY2tldCA4IHlvdSBjYW4gd3JpdGUgZmV3ZXIsIGZhc3RlciBhbmQgbW9yZSBtYWludGFpbmFibGUgY29kZS4KICAgICA8L3A+CkBAIC0xNyw3ICsxOCw3IEBACiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgPGgzPkphdmEgOCsgUmVxdWlyZWQ8L2gzPgogICAgIDxwPgpAQCAtNDAsNyArNDEsNyBAQAogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLXR3by10aGlyZCI+CiAgICAgPGgzPkxhbWJkYXMgaW4gQWxsIFRoZSBSaWdodCBQbGFjZXM8L2gzPgogICAgIDxwPgpAQCAtNTIsNyArNTMsNyBAQAogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgogICAgIDxoMz5PcHRpb25hbCBpcyBTb21ldGltZXMgUmVxdWlyZWQ8L2gzPgogICA8L2Rpdj4KQEAgLTkxLDcgKzkyLDcgQEAKICAgPC9kaXY+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgzPk1vZGVscyBhcyBGdW5jdGlvbmFsIEludGVyZmFjZTwvaDM+CiAgICAgPHA+CkBAIC0xMTgsNyArMTE5LDcgQEAKICAgPC9kaXY+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CiAgICAgPGgzPk5vIFJld3JpdGUgTmVjZXNzYXJ5PC9oMz4KICAgICA8cD4KQEAgLTE0MSw3ICsxNDIsNyBAQAogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgogICAgIDxoMj5HZXR0aW5nIFN0YXJ0ZWQgd2l0aCBXaWNrZXQgODwvaDI+CiAgICAgPHA+CkBAIC0xODgsNyArMTg5LDcgQEAKICAgICB3ZWIgYXBwbGljYXRpb24uPC9wPgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGltZyBzcmM9Ii9pbWcvamF2YS13aWNrZXQtaHRtbDUucG5nIiBjbGFzcz0ibC1mdWxsIiAvPgogICAgICAgICA8aDM+SnVzdCBKYXZhICZhbXA7IEhUTUw8L2gzPgpAQCAtMjEyLDcgKzIxMyw3IEBACiAgICAgICAgIG9mIGJhc2ljIEFqYXggY29tcG9uZW50cy48L3A+CiAgICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGgzPk9wZW4gU291cmNlIHdpdGggQXBhY2hlIExpY2Vuc2U8L2gzPgogICAgICAgICA8cD5TaW5jZSBpdHMgaW5jZXB0aW9uIGluIDIwMDQgV2lja2V0IGhhcyBiZWVuIGFuIG9wZW4gc291cmNlCkBAIC0yMzQsNyArMjM1LDcgQEAKICAgICAgICAgcGFnZSwgb3IgZXZlbiBjb21wb25lbnQgbGV2ZWwuPC9wPgogICAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxoMz5NdWx0aS10YWIgYW5kIHdpbmRvdyBzdXBwb3J0PC9oMz4KICAgICAgICAgPHA+Tm8gbW9yZSBwYWluIHdoaWxlIGtlZXBpbmcgdGFwcyBvbiBtdWx0aXBsZSB0YWJzIGFuZCB3aW5kb3dzLiAKQEAgLTI1MSw3ICsyNTIsNyBAQAogICAgICAgICBmaWxlLjwvcD4KICAgICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aDM+VGVzdCB5b3VyIHBhZ2VzIGFuZCBjb21wb25lbnRzPC9oMz4KICAgICAgICAgPHA+V2l0aCBXaWNrZXRUZXN0ZXIgeW91IGNhbiBhY2hpZXZlIHRlc3RpbmcgY292ZXJhZ2UgeW91ciBRQSAKQEAgLTI3NCw0ICsyNzUsNiBAQAogPC9kaXY+CiA8ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KIDwvZGl2PgorPGhyIC8+CisKIAY6BkVUClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi82NS8zZjYwNGZjMzVmNWY5NzlhZmI0NDQ0Njg5YWU1MjFkNGI4ZDllN2I0Yzc5MmY5M2JmNDdlNTgzOWIxZjQxNyBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vNjUvM2Y2MDRmYzM1ZjVmOTc5YWZiNDQ0NDY4OWFlNTIxZDRiOGQ5ZTdiNGM3OTJmOTNiZjQ3ZTU4MzliMWY0MTcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2QyNmU0MwotLS0gL2Rldi9udWxsCisrKyBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vNjUvM2Y2MDRmYzM1ZjVmOTc5YWZiNDQ0NDY4OWFlNTIxZDRiOGQ5ZTdiNGM3OTJmOTNiZjQ3ZTU4MzliMWY0MTcKQEAgLTAsMCArMSwyMTEgQEAKKwQISSICUCk8ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CisgICAgPGgxIGlkPSJpbnRyb2R1Y3Rpb24iPkFubm91bmNpbmcgQXBhY2hlJm5ic3A7V2lja2V0Jm5ic3A7ODogV3JpdGUgTGVzcywgQWNoaWV2ZSBNb3JlPC9oMT4KKyAgICA8ZGl2PgorICAgICAgPGltZyBzcmM9Ii9pbWcvbG9nby5zdmciIGFsdD0iQXBhY2hlIFdpY2tldCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIC8+CisgICAgPC9kaXY+CisgICAgPHA+CisgICAgICBUaGUgQXBhY2hlIFdpY2tldCBwcm9qZWN0IGFubm91bmNlcyB0aGUgOXRoIG1ham9yIHJlbGVhc2Ugb2YgdGhlIG9wZW4gc291cmNlIEphdmEgd2ViIGZyYW1ld29yayBzZXJ2aWNpbmcgd2Vic2l0ZXMgYW5kIGFwcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGdsb2JlIHNpbmNlIDIwMDQuIAorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIEJ1aWx0IG9uIHRvcCBvZiBKYXZhIDExLCB0aGlzIHZlcnNpb24gb2YgV2lja2V0IGJyaW5ncyB3ZWIgZGV2ZWxvcG1lbnQgaW50byB0aGUgbW9kZXJuIEphdmEgd29ybGQsIG9mZmVyaW5nIGEgZnVuZGFtZW50YWwgdG9vbCB0byBrZWVwIHlvdSBjb2RlIHVwIHRvIGRhdGUgd2l0aCBKYXZhIGV2b2x1dGlvbi4KKyAgICA8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QiPgorICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgorICAgIDxoMz5CcmluZyB0aGUgd2ViIGludG8gdGhlIG1vZGVybiBKYXZhIGVyYTwvaDM+CisgICAgPHA+CisgICAgIFRoZSByZWxlYXNlIG9mIEphdmEgOSBoYXMgYmVlbiBhIHR1cm5pbmcgcG9pbnQgaW4gSmF2YSBoaXN0b3J5IHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gZm9yIHRoZSBtb2Rlcm4gSmF2YSBlcmEuIEhvd2V2ZXIsIHRoZSBtYWduaXR1ZGUgb2YgdGhpcyBjaGFuZ2UgaGFzIGRpc2NvdXJhZ2UgbWFueSBkZXZlbG9wZXJzIGZyb20gbGVhdmluZyB0aGUgc2FmZSBoYXJib3IgcmFwcHJlc2VudGVkIGJ5IEphdmEgOC4gV2l0aCBXaWNrZXQgOSB3ZSBmaW5hbGx5IGhhdmUgYSBmdW5kYW1lbnRhbCB0b29sIHRvIG1vdmUgb24gYW5kIGJyaW5nIG91ciB3ZWIgYXBwbGljYXRpb24gaW50byB0aGUgbmV3IEphdmEgd29ybGQuICAKKyAgICA8L3A+CisgICAgPHA+CisgICAgICBXaXRoIHRoaXMgdmVyc2lvbiBXaWNrZXQgaGFzIGJlZW4gY29tcGxldGVkIHJldmlzaXRlZCBhbmQgaW1wcm92ZWQgdG8gZW1icmFjZSBuZXcgdGVjaG5vbG9naWVzIGxpa2UgSmF2YSBtb2R1bGFyaXphdGlvbiBhbmQgbmV3IGxpYnJhcnkgbGlrZSBKVW5pdCA1LgorICAgIDwvcD4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5TdGF5IHVwIHRvIGRhdGUgd2l0aCBKYXZhIHJlbGVhc2UgY3ljbGU8L2gzPgorICAgIDxwPgorICAgICAgV2l0aCBKYXZhIHJlbGVhc2luZyBhdCBhIGZhc3RlciBwaGFzZSBpdCdzIGltcG9ydGFudCB0byBrZWVwIGEgbGlicmFyeSB1cCB0byBkYXRlIHdpdGggdGhlIGxhc3Rlc3QgY2hhbmdlcyBpbnRyb2R1Y2VkIGluIHRoZSBwbGF0Zm9ybSBhbmQgZW5zdXJlIGl0IHdvcmtzIHdpdGggdGhlIGxhdGVzdCBKYXZhIHJlbGVhc2UuIFdpY2tldCBkb2VzIGFsbCBvZiB0aGlzIGJ5IHRha2luZyBwYXJ0IHRvIHRoZSA8YSBocmVmPSJodHRwczovL3dpa2kub3Blbmpkay5qYXZhLm5ldC9kaXNwbGF5L3F1YWxpdHkvUXVhbGl0eStPdXRyZWFjaCIgdGFyZ2V0PSJfYmxhbmsiPk9wZW5KREsgUXVhbGl0eSBPdXRyZWFjaDwvYT4sIGFuIGluaXRpYXRpdmUgYWltZWQgdG8gdGVzdCBwb3B1bGFyIE9wZW4gU291cmNlIHByb2plY3RzIHdpdGggYm90aCB0aGUgbGF0ZXN0IE9wZW5KREsgcmVsZWFzZSBhbmQgdGhlIEVhcmx5IEFjY2VzcyByZWxlYXNlLgorICAgIDwvcD4KKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPiBCZSByZWFkeSBmb3IgdGhlIG5leHQgSmF2YSBFbnRlcnByaXNlPC9oMz4KKyAgICA8cD4KKyAgICAgU2hvcnRseSBhZnRlciBKYXZhIDkgd2FzIHJlbGVhc2VkLCBPcmFjbGUgc3VibWl0dGVkIEphdmEgRUUgdG8gdGhlIEVjbGlwc2UgRm91bmRhdGlvbi4gQXMgc2lkZSBlZmZlY3Qgb2YgdGhpcyBvd25lciBjaGFuZ2UsIHRoZSBwYWNrYWdlIG5hbWUgJ2phdmF4JyBoYWQgdG8gYmUgbWlncmF0ZSB0byAnamFrYXJ0YScuIFdpY2tldCBoaXN0b3JpY2FsbHkgcHJvbW90ZWQgZGVjdXBsaW5nIGJldHdlZW4gSmF2YSBFRSBBUElzIGFuZCBhcHBsaWNhdGlvbiBjb2RlLCBoZW5jZSBtYWtpbmcgbXVjaCBtb3JlIGVhc2llciB0aGUgdHJhbnNpdGlvbiB0byB0aGUgZnV0dXJlIEphdmEgRW50ZXJwcmlzZSB2ZXJzaW9ucy4gCisgICAgPC9wPgorICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CisgICAgPGgzPlByb3RlY3QgeW91ciB3ZWIgYXBwcyB3aXRoIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IChDU1ApPC9oMz4KKyAgICA8cD4KKyAgICAgQXMgdGhlIG51bWJlciBvZiBzZWN1cml0eSB0aHJlYXRzIGdyb3dzLCBpdCdzIGNydWNpYWwgZm9yIHdlYiBhcHBsaWNhdGlvbnMgdG8gYWRvcHQgdGhlIGxhdGVzdCBzZWN1cml0eSBzdGFuZGFyZHMgYW5kIGNvdW50ZXJtZWFzdXJlcy4gQ1NQIGlzIGEgbW9kZXJuIHN0YW5kYXJkIHRoYXQgYWxsb3dzIGFwcGxpY2F0aW9ucyB0byBkZWNsYXJlIGFwcHJvdmVkIG9yaWdpbnMgb2YgY29udGVudCAoc3VjaCBhcyBKYXZhc2NyaXB0LCBDU1MsIGltYWdlcywgZXRjLi4uKSBmb3IgdGhlIGJyb3dzZXIgdG8gbG9hZC4gQ29uc3RydWN0aW5nIGEgc2FmZSBhbmQgYXQgdGhlIHNhbWUgdGltZSBjb21wbGV0ZSBDU1AgY2FuIGJlIGNoYWxsZW5naW5nLiAKKyAgICAgWW91IGVpdGhlciByaXNrIGxlYXZpbmcgaG9sZXMgaW4gdGhlIGRlZmVuc2Ugb2YgeW91ciBhcHBsaWNhdGlvbiBvciB5b3UgYnJlYWsgY2VydGFpbiBmdW5jdGlvbmFsaXR5LiBQcm90ZWN0aW5nIGFnYWluc3QgdW53YW50ZWQgaW5saW5lIHNjcmlwdHMgaXMgdGhlIG1vc3QgaW1wb3J0YW50IHRhcmdldCB0byBhdHRhaW4uIEluIENTUCB0aGlzIGlzIGNhbGxlZCAndW5zYWZlLWlubGluZScgYW5kIGl0J3MgdGhlIG1vc3QgY29tbW9uIGNhdXNlIG9mIGNyb3NzLXNpdGUgc2NyaXB0aW5nIHZ1bG5lcmFiaWxpdGllcy4KKyAgICA8L3A+CisgICAgPHA+CisgICAgIFdpY2tldCA5IGNvbWVzIHdpdGggZnVsbCBzdXBwb3J0IGZvciBDU1AgYW5kIGRvZXMgbm90IG5lZWQgYW55IHVuc2FmZSBkaXJlY3RpdmVzLiBXaWNrZXQgd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCBhIG5vbmNlIHRvIGV2ZXJ5IGhlYWRlciBjb250cmlidXRpb24gYW5kIHdoaXRlbGlzdCB0aGlzIG5vbmNlLiBUaGlzIGFsbG93cyBmb3IgZmxleGlibGUgbG9hZGluZyBvZiByZXNvdXJjZXMgd2l0aG91dCB0aGUgbmVlZCBvZiBhIGNvbXBsZXggQ1NQLiBPZiBjb3Vyc2UgaXQgaXMgcG9zc2libGUgdG8gbW9kaWZ5IGFuZCBjdXN0b21pemUgdGhlIENTUCwgYWRkIGFkZGl0aW9uYWwgZGlyZWN0aXZlcyBvciBkaXNhYmxlIGl0IGVudGlyZWx5LiBMb29rdXAgb3VyICZsdDthIGhyZWY9Imh0dHA6Ly93aWNrZXQuYXBhY2hlLm9yZy9sZWFybi8jZ3VpZGUiIHRhcmdldD0iX2JsYW5rIiImZ3Q7ZG9jdW1lbnRhdGlvbiZsdDsvYSZndDsgZm9yIG1vcmUgaW5mb3JtYXRpb24uICAgICAKKyAgICA8L3A+CisgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+Tm8gUmV3cml0ZSBOZWNlc3Nhcnk8L2gzPgorICAgIDxwPgorICAgICAgVGhlIFdpY2tldCB0ZWFtIGhhcyBiZWVuIHZlcnkgY2FyZWZ1bCBvZiBhZG9wdGluZyBKYXZhIDggdGVjaG5vbG9naWVzIGFuZCBhcyBzdWNoIHlvdSBkb27igJl0IGhhdmUgdG8gcmV3cml0ZSB5b3VyIHdob2xlIGFwcGxpY2F0aW9uLCB3aGlsc3Qgc3RpbGwgcmVhcGluZyBhbGwgdGhlIGJlbmVmaXRzIG9mIEphdmEgOC4KKyAgICA8L3A+CisgICAgPHA+CisgICAgICBBcyB0aGlzIGlzIGEgbmV3IG1ham9yIHZlcnNpb24gd2UgaGF2ZSwgaW4gYWNjb3JkYW5jZSB3aXRoIHNlbWFudGljIHZlcnNpb25pbmcsIGNsZWFuZWQgdXAgbWFueSBBUElzIGFuZCB5b3Ugd2lsbCBnZXQgY29tcGlsZSBlcnJvcnMgd2hlbiB5b3UgbWlncmF0ZSBmcm9tIHByZXZpb3VzIFdpY2tldCB2ZXJzaW9ucy4KKyAgICA8L3A+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5NaWdyYXRpbmcgdG8gV2lja2V0IDk8L2gzPgorICAgIDxwPgorICAgICAgV2hlbiB5b3UgbWlncmF0ZSBmcm9tIGEgcHJldmlvdXMgV2lja2V0IHZlcnNpb24gdG8gV2lja2V0IDksIGEgZnVsbCBsaXN0IG9mIGNoYW5nZXMgYW5kIG1pZ3JhdGlvbnMgaXMgYXZhaWxhYmxlIGF0IHRoZSBmb2xsb3dpbmcgcGFnZToKKyAgICA8L3A+CisgICAgPHA+CisgICAgICA8YSBocmVmPSJodHRwczovL3MuYXBhY2hlLm9yZy93aWNrZXQ4bWlncmF0ZSI+aHR0cHM6Ly9zLmFwYWNoZS5vcmcvd2lja2V0OW1pZ3JhdGU8L2E+CisgICAgPC9wPgorICAgIDxwPgorICAgICAgUGxlYXNlIGNvbnN1bHQgdGhpcyBtaWdyYXRpb24gZ3VpZGUgd2hlbiB5b3UgYXJlIG1vdmluZyB0b3dhcmRzIFdpY2tldCA5LgorICAgIDwvcD4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KKyAgICA8aDI+R2V0dGluZyBTdGFydGVkIHdpdGggV2lja2V0IDk8L2gyPgorICAgIDxwPgorICAgICAgSXQgaXMgdmVyeSBlYXN5IHRvIGdldCBzdGFydGVkIHdpdGggV2lja2V0OiB1c2Ugb3VyIDxhIGhyZWY9Ii9zdGFydC9xdWlja3N0YXJ0Lmh0bWwiPnF1aWNrLXN0YXJ0IHdpemFyZDwvYT4gb3IgCisgICAgICB1c2Ugb25lIG9mIHRoZSBvcHRpb25zIGJlbG93LgorICAgIDwvcD4KKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPkRvd25sb2FkIHVzaW5nIEFwYWNoZSBNYXZlbjwvaDM+CisgICAgPHA+CisgICAgICBXaXRoIEFwYWNoZSBNYXZlbiB1cGRhdGUgeW91ciBkZXBlbmRlbmN5IHRvIChhbmQgZG9uJ3QgZm9yZ2V0IHRvCisgICAgICB1cGRhdGUgYW55IG90aGVyIGRlcGVuZGVuY2llcyBvbiBXaWNrZXQgcHJvamVjdHMgdG8gdGhlIHNhbWUgdmVyc2lvbik6CisgICAgPC9wPgorCis8ZmlndXJlIGNsYXNzPSJoaWdobGlnaHQiPjxwcmU+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLXhtbCIgZGF0YS1sYW5nPSJ4bWwiPjxzcGFuIGNsYXNzPSJudCI+Jmx0O2RlcGVuZGVuY3kmZ3Q7PC9zcGFuPgorICAgIDxzcGFuIGNsYXNzPSJudCI+Jmx0O2dyb3VwSWQmZ3Q7PC9zcGFuPm9yZy5hcGFjaGUud2lja2V0PHNwYW4gY2xhc3M9Im50Ij4mbHQ7L2dyb3VwSWQmZ3Q7PC9zcGFuPgorICAgIDxzcGFuIGNsYXNzPSJudCI+Jmx0O2FydGlmYWN0SWQmZ3Q7PC9zcGFuPndpY2tldC1jb3JlPHNwYW4gY2xhc3M9Im50Ij4mbHQ7L2FydGlmYWN0SWQmZ3Q7PC9zcGFuPgorICAgIDxzcGFuIGNsYXNzPSJudCI+Jmx0O3ZlcnNpb24mZ3Q7PC9zcGFuPjkuMC4wLU01PHNwYW4gY2xhc3M9Im50Ij4mbHQ7L3ZlcnNpb24mZ3Q7PC9zcGFuPgorPHNwYW4gY2xhc3M9Im50Ij4mbHQ7L2RlcGVuZGVuY3kmZ3Q7PC9zcGFuPjwvY29kZT48L3ByZT48L2ZpZ3VyZT4KKworICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+RG93bmxvYWQgc291cmNlcy9iaW5hcmllcyBtYW51YWxseTwvaDM+CisgICAgPHA+CisgICAgICBPciBkb3dubG9hZCBhbmQgYnVpbGQgdGhlIGRpc3RyaWJ1dGlvbiB5b3Vyc2VsZiwgb3IgdXNlIG91cgorICAgICAgY29udmVuaWVuY2UgYmluYXJ5IHBhY2thZ2UKKyAgICA8L3A+CisgICAgPHVsPgorICAgICAgPGxpPlNvdXJjZTogPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2R5bi9jbG9zZXIuY2dpL3dpY2tldC85LjAuMC1NNSI+OS4wLjAtTTUgc291cmNlIGRvd25sb2FkPC9hPjwvbGk+CisgICAgICA8bGk+QmluYXJ5OiA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZHluL2Nsb3Nlci5jZ2kvd2lja2V0LzkuMC4wLU01L2JpbmFyaWVzIj45LjAuMC1NNSBiaW5hcnkgZG93bmxvYWQ8L2E+PC9saT4KKyAgICA8L3VsPgorICA8L2Rpdj4KKzwvZGl2PgorCis8aHIgLz4KKworPGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgorICAgIDxoMSBpZD0iaW50cm9kdWN0aW9uIj5JbnRyb2R1Y2luZyBBcGFjaGUmbmJzcDtXaWNrZXQ8L2gxPgorICAgIDxwPkludmVudGVkIGluIDIwMDQsIFdpY2tldCBpcyBvbmUgb2YgdGhlIGZldyBzdXJ2aXZvcnMgb2YgdGhlIEphdmEKKyAgICBzZXJ2ZXJzaWRlIHdlYiBmcmFtZXdvcmsgd2FycyBvZiB0aGUgbWlkIDIwMDAncy4gV2lja2V0IGlzIGFuIG9wZW4KKyAgICBzb3VyY2UsIGNvbXBvbmVudCBvcmllbnRlZCwgc2VydmVyc2lkZSwgSmF2YSB3ZWIgYXBwbGljYXRpb24gZnJhbWV3b3JrLgorICAgIFdpdGggYSBoaXN0b3J5IG9mIG92ZXIgYSBkZWNhZGUsIGl0IGlzIHN0aWxsIGdvaW5nIHN0cm9uZyBhbmQgaGFzIGEKKyAgICBzb2xpZCBmdXR1cmUgYWhlYWQuIExlYXJuIHdoeSB5b3Ugc2hvdWxkIGNvbnNpZGVyIFdpY2tldCBmb3IgeW91ciBuZXh0CisgICAgd2ViIGFwcGxpY2F0aW9uLjwvcD4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aW1nIHNyYz0iL2ltZy9qYXZhLXdpY2tldC1odG1sNS5wbmciIGNsYXNzPSJsLWZ1bGwiIC8+CisgICAgICAgIDxoMz5KdXN0IEphdmEgJmFtcDsgSFRNTDwvaDM+CisgICAgICAgIDxwPkxldmVyYWdlIHdoYXQgeW91IGtub3cgYWJvdXQgSmF2YSBvciB5b3VyIGZhdm91cml0ZSBIVE1MIAorICAgICAgICBlZGl0b3IgdG8gd3JpdGUgV2lja2V0IGFwcGxpY2F0aW9ucy4gV2l0aCBwdXJlIEphdmEgY29kZSBhbmQgSFRNTCAKKyAgICAgICAgbWFya3VwIFdpY2tldCBpcyB0aGUgZ28tdG8gd2ViIGZyYW1ld29yayBmb3IgcHVyaXN0cy48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aW1nIHNyYz0iL2ltZy93aWNrZXQtc2FmZS5wbmciIGNsYXNzPSJsLWZ1bGwiIC8+CisgICAgICAgIDxoMz5TZWN1cmUgYnkgRGVmYXVsdDwvaDM+CisgICAgICAgIDxwPlVSTHMgZG8gbm90IGV4cG9zZSBzZW5zaXRpdmUgaW5mb3JtYXRpb24gYW5kIGFsbCBjb21wb25lbnQgcGF0aHMgYXJlCisgICAgICAgIHNlc3Npb24tcmVsYXRpdmUuIFdpY2tldCBrZWVwcyB5b3VyIG1vZGVsIHByaXZhdGUgZXhjZXB0IHRob3NlIHBhcnRzCisgICAgICAgIHlvdSBleHBsaWNpdGx5IGV4cG9zZS48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aW1nIHNyYz0iL2ltZy93aWNrZXQtY29tcG9uZW50cy5wbmciIGNsYXNzPSJsLWZ1bGwiIC8+CisgICAgICAgIDxoMz5BSkFYIENvbXBvbmVudHM8L2gzPgorICAgICAgICA8cD5Xcml0ZSBBamF4IGFwcGxpY2F0aW9ucyB3aXRob3V0IGhhdmluZyB0byB3cml0ZSBhIHNpbmdsZSBsaW5lIAorICAgICAgICBvZiBKYXZhU2NyaXB0IGNvZGUuIFdpY2tldCdzIEFqYXggZnVuY3Rpb25hbGl0eSBtYWtlcyBpdCB0cml2aWFsIAorICAgICAgICB0byB1cGRhdGUgc2VsZWN0ZWQgcGFydHMgb2YgYSBVSSwgYW5kIGNvbWVzIHdpdGggYSBncmVhdCBzZWxlY3Rpb24gCisgICAgICAgIG9mIGJhc2ljIEFqYXggY29tcG9uZW50cy48L3A+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5PcGVuIFNvdXJjZSB3aXRoIEFwYWNoZSBMaWNlbnNlPC9oMz4KKyAgICAgICAgPHA+U2luY2UgaXRzIGluY2VwdGlvbiBpbiAyMDA0IFdpY2tldCBoYXMgYmVlbiBhbiBvcGVuIHNvdXJjZQorICAgICAgICBwcm9qZWN0IGFuZCByZW1haW5zIGF2YWlsYWJsZSB1bmRlciBvbmUgb2YgdGhlIG1vc3QgcGVybWlzc2l2ZQorICAgICAgICBsaWNlbnNlczogdGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5NYWludGFpbmFibGUgY29kZTwvaDM+CisgICAgICAgIDxwPlBhZ2VzIGFuZCBDb21wb25lbnRzIGluIFdpY2tldCBhcmUgcmVhbCBKYXZhIG9iamVjdHMgdGhhdCBzdXBwb3J0CisgICAgICAgIGVuY2Fwc3VsYXRpb24sIGluaGVyaXRhbmNlIGFuZCBldmVudHMuIENyZWF0ZSBoaWdoIGxldmVsIGNvbXBvbmVudHMKKyAgICAgICAgd2l0aCBlYXNlIGFuZCBidW5kbGUgaXRzIHN0eWxlc2hlZXRzLCBKYXZhU2NyaXB0IGFuZCBvdGhlciByZXNvdXJjZXMKKyAgICAgICAgaW50byBvbmUgcmV1c2FibGUgcGFja2FnZS48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+SW50ZXJuYXRpb25hbGl6ZWQgdG8gdGFrZSBvbiB0aGUgd29ybGQ8L2gzPgorICAgICAgICA8cD5XaXRoIHN1cHBvcnQgb2Ygb3ZlciAyNSBsYW5ndWFnZXMgb3V0LW9mLXRoZS1ib3gsIFdpY2tldCBsZXQncyAKKyAgICAgICAgeW91IGdldCBzdGFydGVkIGluIHlvdXIgb3duIGxhbmd1YWdlLCBvciBhIHNlY29uZCBsYW5ndWFnZSB3aXRoIG5vIAorICAgICAgICBlZmZvcnQuIFlvdSBjYW4gcHJvdmlkZSBhbHRlcm5hdGl2ZSBsYW5ndWFnZXMgb24gdGhlIGFwcGxpY2F0aW9uLCAKKyAgICAgICAgcGFnZSwgb3IgZXZlbiBjb21wb25lbnQgbGV2ZWwuPC9wPgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+TXVsdGktdGFiIGFuZCB3aW5kb3cgc3VwcG9ydDwvaDM+CisgICAgICAgIDxwPk5vIG1vcmUgcGFpbiB3aGlsZSBrZWVwaW5nIHRhcHMgb24gbXVsdGlwbGUgdGFicyBhbmQgd2luZG93cy4gCisgICAgICAgIFdpY2tldCdzIGF1dG9tYXRpYyBzdGF0ZSBzdG9yYWdlIGVuc3VyZXMgdGhhdCB5b3VyIHVzZXJzIGNhbiBvcGVuIAorICAgICAgICBwYWdlcyBpbiBuZXcgdGFicyBhbmQgd2luZG93cyB3aXRob3V0IGNhdXNpbmcgcHJvYmxlbXMuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImwtdHdvLXRoaXJkIj4KKyAgICAgICAgPGgzPldvcmsgd2l0aCBKYXZhU2NyaXB0IGFuZCBDU1M8L2gzPgorICAgICAgICA8cD5HbG9iYWwgSmF2YVNjcmlwdCBsaWJyYXJpZXMgYW5kIENTUyBzdHlsaW5nIG1peCBwcm9wZXJseSB3aXRoIAorICAgICAgICBjb21wb25lbnQgbG9jYWwgSmF2YVNjcmlwdCBhbmQgQ1NTIHJlc291cmNlcy4gWW91IGNhbiB1c2UgY3VzdG9tIAorICAgICAgICBjb21wb25lbnQgbGlicmFyaWVzIHRoYXQgc2hpcCB3aXRoIGRlZmF1bHQgSmF2YVNjcmlwdCBiZWhhdmlvdXIgYW5kIAorICAgICAgICBDU1Mgc3R5bGluZywgd2l0aG91dCBoYXZpbmcgdG8gZG8gYW55dGhpbmcgeW91cnNlbGYuIENyZWF0aW5nIHN1Y2ggCisgICAgICAgIHNlbGYtY29udGFpbmVkIGNvbXBvbmVudCBsaWJyYXJpZXMgaXMgYXMgZWFzeSBhcyBjcmVhdGluZyBhIEpBUiAKKyAgICAgICAgZmlsZS48L3A+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5UZXN0IHlvdXIgcGFnZXMgYW5kIGNvbXBvbmVudHM8L2gzPgorICAgICAgICA8cD5XaXRoIFdpY2tldFRlc3RlciB5b3UgY2FuIGFjaGlldmUgdGVzdGluZyBjb3ZlcmFnZSB5b3VyIFFBIAorICAgICAgICBkZXBhcnRtZW50IGNhbiBvbmx5IGRyZWFtIG9mLiBUZXN0IHlvdXIgcGFnZXMgd2l0aG91dCBoYXZpbmcgdG8gcnVuIAorICAgICAgICBpbnNpZGUgYSBicm93c2VyLCBvciBzdGFydCBhIGNvbnRhaW5lci4gVGVzdCB5b3VyIGNvbXBvbmVudHMgZGlyZWN0bHksIAorICAgICAgICBjaGVjayB0aGVpciByZW5kZXJlZCBtYXJrdXAgdGFncywgYXR0cmlidXRlcyBhbmQgY29udGVudHMgd2l0aCBlYXNlLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5JbmplY3Rpb24gc3VwcG9ydDwvaDM+CisgICAgICAgIDxwPkluamVjdCB5b3VyIHNlcnZpY2VzIGludG8geW91ciBwYWdlcyBhbmQgY29tcG9uZW50cyB3aXRoIHRoZSAKKyAgICAgICAgdGVjaG5vbG9neSBvZiB5b3VyIGNob29zaW5nOiBXaWNrZXQgcHJvdmlkZXMgaW50ZWdyYXRpb24gd2l0aCBDREkgCisgICAgICAgIChKU1ItMzA1KSwgU3ByaW5nIGFuZCBHdWljZS48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+SmF2YUVFIGludGVncmF0aW9uPC9oMz4KKyAgICAgICAgPHA+SWYgeW91IGFyZSB1c2luZyB0aGUgV2ViIHByb2ZpbGUgb2YgSmF2YUVFIDYgb3IgbmV3ZXIsIHlvdSBjYW4gCisgICAgICAgIGxldmVyYWdlIEpQQSwgRUpCcywgQmVhbiBWYWxpZGF0aW9uIGFuZCBDREkgd2l0aCBXaWNrZXQncyBpbnRlZ3JhdGlvbnMgCisgICAgICAgIGZvciB0aGVzZSBzcGVjaWZpY2F0aW9ucy48L3A+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPC9kaXY+Cis8aHIgLz4KKworBjoGRVQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4IGIvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi82Yi83MzcxMjU3YmMwN2Y2ZTEyZjgzMzJmYzdiMjVjY2M2YTM4YWUwNzM4NGM2ODIxMWNhMDNiNDE2YjJhNTk5MgpzaW1pbGFyaXR5IGluZGV4IDk2JQpjb3B5IGZyb20gLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOApjb3B5IHRvIC5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vNmIvNzM3MTI1N2JjMDdmNmUxMmY4MzMyZmM3YjI1Y2NjNmEzOGFlMDczODRjNjgyMTFjYTAzYjQxNmIyYTU5OTIKaW5kZXggZjYzMWU0Yi4uMTcxNjFmNSAxMDA2NDQKLS0tIGEvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOAorKysgYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzZiLzczNzEyNTdiYzA3ZjZlMTJmODMzMmZjN2IyNWNjYzZhMzhhZTA3Mzg0YzY4MjExY2EwM2I0MTZiMmE1OTkyCkBAIC0xLDUgKzEsNiBAQAotBAhJIgJyPTxkaXYgY2xhc3M9ImwtZnVsbCBsLWZpcnN0IHByZWFtYmxlIj4KKwQISSIC+z08ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CiAgICAgPGgxIGlkPSJpbnRyb2R1Y3Rpb24iPkFubm91bmNpbmcgQXBhY2hlJm5ic3A7V2lja2V0Jm5ic3A7ODogV3JpdGUgTGVzcywgQWNoaWV2ZSBNb3JlPC9oMT4KKyAgICA8cD48aW1nIHNyYz0iL2ltZy9sb2dvLnN2ZyIgYWx0PSJBcGFjaGUgV2lja2V0IiAvPjwvcD4KICAgICA8cD4KICAgICAgIFRoZSBBcGFjaGUgV2lja2V0IHByb2plY3QgYW5ub3VuY2VzIHRoZSA4dGggbWFqb3IgcmVsZWFzZSBvZiB0aGUgb3BlbiBzb3VyY2UgSmF2YSB3ZWIgZnJhbWV3b3JrIHNlcnZpY2luZyB3ZWJzaXRlcyBhbmQgYXBwbGljYXRpb25zIGFjcm9zcyB0aGUgZ2xvYmUgZm9yIG92ZXIgYSBkZWNhZGUuIFdpdGggdGhpcyByZWxlYXNlIFdpY2tldCBlbWJyYWNlcyBKYXZhIDggaWRpb21zIGZ1bGx5LCBhbGxvd2luZyB0aGUgdXNlIG9mIGxhbWJkYSBleHByZXNzaW9ucyBpbiBhbGwgdGhlIHJpZ2h0IHBsYWNlcy4gV2l0aCBXaWNrZXQgOCB5b3UgY2FuIHdyaXRlIGZld2VyLCBmYXN0ZXIgYW5kIG1vcmUgbWFpbnRhaW5hYmxlIGNvZGUuCiAgICAgPC9wPgpAQCAtMTcsNyArMTgsNyBAQAogICA8L2Rpdj4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgIDxoMz5KYXZhIDgrIFJlcXVpcmVkPC9oMz4KICAgICA8cD4KQEAgLTQwLDcgKzQxLDcgQEAKICAgICA8L3A+CiAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC10d28tdGhpcmQiPgogICAgIDxoMz5MYW1iZGFzIGluIEFsbCBUaGUgUmlnaHQgUGxhY2VzPC9oMz4KICAgICA8cD4KQEAgLTUyLDcgKzUzLDcgQEAKICAgICA8L3A+CiAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDM+T3B0aW9uYWwgaXMgU29tZXRpbWVzIFJlcXVpcmVkPC9oMz4KICAgPC9kaXY+CkBAIC05MSw3ICs5Miw3IEBACiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgogICAgIDxoMz5Nb2RlbHMgYXMgRnVuY3Rpb25hbCBJbnRlcmZhY2U8L2gzPgogICAgIDxwPgpAQCAtMTE4LDcgKzExOSw3IEBACiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgogICAgIDxoMz5ObyBSZXdyaXRlIE5lY2Vzc2FyeTwvaDM+CiAgICAgPHA+CkBAIC0xNDEsNyArMTQyLDcgQEAKICAgICA8L3A+CiAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDI+R2V0dGluZyBTdGFydGVkIHdpdGggV2lja2V0IDg8L2gyPgogICAgIDxwPgpAQCAtMTg4LDcgKzE4OSw3IEBACiAgICAgd2ViIGFwcGxpY2F0aW9uLjwvcD4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2phdmEtd2lja2V0LWh0bWw1LnBuZyIgY2xhc3M9ImwtZnVsbCIgLz4KICAgICAgICAgPGgzPkp1c3QgSmF2YSAmYW1wOyBIVE1MPC9oMz4KQEAgLTIxMiw3ICsyMTMsNyBAQAogICAgICAgICBvZiBiYXNpYyBBamF4IGNvbXBvbmVudHMuPC9wPgogICAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxoMz5PcGVuIFNvdXJjZSB3aXRoIEFwYWNoZSBMaWNlbnNlPC9oMz4KICAgICAgICAgPHA+U2luY2UgaXRzIGluY2VwdGlvbiBpbiAyMDA0IFdpY2tldCBoYXMgYmVlbiBhbiBvcGVuIHNvdXJjZQpAQCAtMjM0LDcgKzIzNSw3IEBACiAgICAgICAgIHBhZ2UsIG9yIGV2ZW4gY29tcG9uZW50IGxldmVsLjwvcD4KICAgICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aDM+TXVsdGktdGFiIGFuZCB3aW5kb3cgc3VwcG9ydDwvaDM+CiAgICAgICAgIDxwPk5vIG1vcmUgcGFpbiB3aGlsZSBrZWVwaW5nIHRhcHMgb24gbXVsdGlwbGUgdGFicyBhbmQgd2luZG93cy4gCkBAIC0yNTEsNyArMjUyLDcgQEAKICAgICAgICAgZmlsZS48L3A+CiAgICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGgzPlRlc3QgeW91ciBwYWdlcyBhbmQgY29tcG9uZW50czwvaDM+CiAgICAgICAgIDxwPldpdGggV2lja2V0VGVzdGVyIHlvdSBjYW4gYWNoaWV2ZSB0ZXN0aW5nIGNvdmVyYWdlIHlvdXIgUUEgCkBAIC0yNzQsNCArMjc1LDYgQEAKIDwvZGl2PgogPGRpdiBjbGFzcz0ibC1maXJzdCI+CiA8L2Rpdj4KKzxociAvPgorCiAGOgZFVApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vODcvZGM5NmVhYmQ5M2FmOGQ2MGI5MTY0MTY0NjEyZGI0Y2ZlOTJmOWE0ZTQxYzA0NGU4NjhhMGJkMDAwZTMxNzQgYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzg3L2RjOTZlYWJkOTNhZjhkNjBiOTE2NDE2NDYxMmRiNGNmZTkyZjlhNGU0MWMwNDRlODY4YTBiZDAwMGUzMTc0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmZDU4ODkKLS0tIC9kZXYvbnVsbAorKysgYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzg3L2RjOTZlYWJkOTNhZjhkNjBiOTE2NDE2NDYxMmRiNGNmZTkyZjlhNGU0MWMwNDRlODY4YTBiZDAwMGUzMTc0CkBAIC0wLDAgKzEsMjExIEBACisECEkiAlApPGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgorICAgIDxoMSBpZD0iaW50cm9kdWN0aW9uIj5Bbm5vdW5jaW5nIEFwYWNoZSZuYnNwO1dpY2tldCZuYnNwOzg6IFdyaXRlIExlc3MsIEFjaGlldmUgTW9yZTwvaDE+CisgICAgPGRpdj4KKyAgICAgIDxpbWcgc3JjPSIvaW1nL2xvZ28uc3ZnIiBhbHQ9IkFwYWNoZSBXaWNrZXQiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiAvPgorICAgIDwvZGl2PgorICAgIDxwPgorICAgICAgVGhlIEFwYWNoZSBXaWNrZXQgcHJvamVjdCBhbm5vdW5jZXMgdGhlIDl0aCBtYWpvciByZWxlYXNlIG9mIHRoZSBvcGVuIHNvdXJjZSBKYXZhIHdlYiBmcmFtZXdvcmsgc2VydmljaW5nIHdlYnNpdGVzIGFuZCBhcHBsaWNhdGlvbnMgYWNyb3NzIHRoZSBnbG9iZSBzaW5jZSAyMDA0LiAKKyAgICA8L3A+CisgICAgPHA+CisgICAgICBCdWlsdCBvbiB0b3Agb2YgSmF2YSAxMSwgdGhpcyB2ZXJzaW9uIG9mIFdpY2tldCBicmluZ3Mgd2ViIGRldmVsb3BtZW50IGludG8gdGhlIG1vZGVybiBKYXZhIHdvcmxkLCBvZmZlcmluZyBhIGZ1bmRhbWVudGFsIHRvb2wgdG8ga2VlcCB5b3UgY29kZSB1cCB0byBkYXRlIHdpdGggSmF2YSBldm9sdXRpb24uCisgICAgPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKyAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KKyAgICA8aDM+QnJpbmcgdGhlIHdlYiBpbnRvIHRoZSBtb2Rlcm4gSmF2YSBlcmE8L2gzPgorICAgIDxwPgorICAgICBUaGUgcmVsZWFzZSBvZiBKYXZhIDkgaGFzIGJlZW4gYSB0dXJuaW5nIHBvaW50IGluIEphdmEgaGlzdG9yeSB3aGljaCBsYWlkIHRoZSBmb3VuZGF0aW9uIGZvciB0aGUgbW9kZXJuIEphdmEgZXJhLiBIb3dldmVyLCB0aGUgbWFnbml0dWRlIG9mIHRoaXMgY2hhbmdlIGhhcyBkaXNjb3VyYWdlIG1hbnkgZGV2ZWxvcGVycyBmcm9tIGxlYXZpbmcgdGhlIHNhZmUgaGFyYm9yIHJhcHByZXNlbnRlZCBieSBKYXZhIDguIFdpdGggV2lja2V0IDkgd2UgZmluYWxseSBoYXZlIGEgZnVuZGFtZW50YWwgdG9vbCB0byBtb3ZlIG9uIGFuZCBicmluZyBvdXIgd2ViIGFwcGxpY2F0aW9uIGludG8gdGhlIG5ldyBKYXZhIHdvcmxkLiAgCisgICAgPC9wPgorICAgIDxwPgorICAgICAgV2l0aCB0aGlzIHZlcnNpb24gV2lja2V0IGhhcyBiZWVuIGNvbXBsZXRlZCByZXZpc2l0ZWQgYW5kIGltcHJvdmVkIHRvIGVtYnJhY2UgbmV3IHRlY2hub2xvZ2llcyBsaWtlIEphdmEgbW9kdWxhcml6YXRpb24gYW5kIG5ldyBsaWJyYXJ5IGxpa2UgSlVuaXQgNS4KKyAgICA8L3A+CisgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+U3RheSB1cCB0byBkYXRlIHdpdGggSmF2YSByZWxlYXNlIGN5Y2xlPC9oMz4KKyAgICA8cD4KKyAgICAgIFdpdGggSmF2YSByZWxlYXNpbmcgYXQgYSBmYXN0ZXIgcGhhc2UgaXQncyBpbXBvcnRhbnQgdG8ga2VlcCBhIGxpYnJhcnkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXN0ZXN0IGNoYW5nZXMgaW50cm9kdWNlZCBpbiB0aGUgcGxhdGZvcm0gYW5kIGVuc3VyZSBpdCB3b3JrcyB3aXRoIHRoZSBsYXRlc3QgSmF2YSByZWxlYXNlLiBXaWNrZXQgZG9lcyBhbGwgb2YgdGhpcyBieSB0YWtpbmcgcGFydCB0byB0aGUgPGEgaHJlZj0iaHR0cHM6Ly93aWtpLm9wZW5qZGsuamF2YS5uZXQvZGlzcGxheS9xdWFsaXR5L1F1YWxpdHkrT3V0cmVhY2giIHRhcmdldD0iX2JsYW5rIj5PcGVuSkRLIFF1YWxpdHkgT3V0cmVhY2g8L2E+LCBhbiBpbml0aWF0aXZlIGFpbWVkIHRvIHRlc3QgcG9wdWxhciBPcGVuIFNvdXJjZSBwcm9qZWN0cyB3aXRoIGJvdGggdGhlIGxhdGVzdCBPcGVuSkRLIHJlbGVhc2UgYW5kIHRoZSBFYXJseSBBY2Nlc3MgcmVsZWFzZS4KKyAgICA8L3A+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz4gQmUgcmVhZHkgZm9yIHRoZSBuZXh0IEphdmEgRW50ZXJwcmlzZTwvaDM+CisgICAgPHA+CisgICAgIFNob3J0bHkgYWZ0ZXIgSmF2YSA5IHdhcyByZWxlYXNlZCwgT3JhY2xlIHN1Ym1pdHRlZCBKYXZhIEVFIHRvIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24uIEFzIHNpZGUgZWZmZWN0IG9mIHRoaXMgb3duZXIgY2hhbmdlLCB0aGUgcGFja2FnZSBuYW1lICdqYXZheCcgaGFkIHRvIGJlIG1pZ3JhdGUgdG8gJ2pha2FydGEnLiBXaWNrZXQgaGlzdG9yaWNhbGx5IHByb21vdGVkIGRlY3VwbGluZyBiZXR3ZWVuIEphdmEgRUUgQVBJcyBhbmQgYXBwbGljYXRpb24gY29kZSwgaGVuY2UgbWFraW5nIG11Y2ggbW9yZSBlYXNpZXIgdGhlIHRyYW5zaXRpb24gdG8gdGhlIGZ1dHVyZSBKYXZhIEVudGVycHJpc2UgdmVyc2lvbnMuIAorICAgIDwvcD4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgorICAgIDxoMz5Qcm90ZWN0IHlvdXIgd2ViIGFwcHMgd2l0aCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSAoQ1NQKTwvaDM+CisgICAgPHA+CisgICAgIEFzIHRoZSBudW1iZXIgb2Ygc2VjdXJpdHkgdGhyZWF0cyBncm93cywgaXQncyBjcnVjaWFsIGZvciB3ZWIgYXBwbGljYXRpb25zIHRvIGFkb3B0IHRoZSBsYXRlc3Qgc2VjdXJpdHkgc3RhbmRhcmRzIGFuZCBjb3VudGVybWVhc3VyZXMuIENTUCBpcyBhIG1vZGVybiBzdGFuZGFyZCB0aGF0IGFsbG93cyBhcHBsaWNhdGlvbnMgdG8gZGVjbGFyZSBhcHByb3ZlZCBvcmlnaW5zIG9mIGNvbnRlbnQgKHN1Y2ggYXMgSmF2YXNjcmlwdCwgQ1NTLCBpbWFnZXMsIGV0Yy4uLikgZm9yIHRoZSBicm93c2VyIHRvIGxvYWQuIENvbnN0cnVjdGluZyBhIHNhZmUgYW5kIGF0IHRoZSBzYW1lIHRpbWUgY29tcGxldGUgQ1NQIGNhbiBiZSBjaGFsbGVuZ2luZy4gCisgICAgIFlvdSBlaXRoZXIgcmlzayBsZWF2aW5nIGhvbGVzIGluIHRoZSBkZWZlbnNlIG9mIHlvdXIgYXBwbGljYXRpb24gb3IgeW91IGJyZWFrIGNlcnRhaW4gZnVuY3Rpb25hbGl0eS4gUHJvdGVjdGluZyBhZ2FpbnN0IHVud2FudGVkIGlubGluZSBzY3JpcHRzIGlzIHRoZSBtb3N0IGltcG9ydGFudCB0YXJnZXQgdG8gYXR0YWluLiBJbiBDU1AgdGhpcyBpcyBjYWxsZWQgJ3Vuc2FmZS1pbmxpbmUnIGFuZCBpdCdzIHRoZSBtb3N0IGNvbW1vbiBjYXVzZSBvZiBjcm9zcy1zaXRlIHNjcmlwdGluZyB2dWxuZXJhYmlsaXRpZXMuCisgICAgPC9wPgorICAgIDxwPgorICAgICBXaWNrZXQgOSBjb21lcyB3aXRoIGZ1bGwgc3VwcG9ydCBmb3IgQ1NQIGFuZCBkb2VzIG5vdCBuZWVkIGFueSB1bnNhZmUgZGlyZWN0aXZlcy4gV2lja2V0IHdpbGwgYXV0b21hdGljYWxseSBhZGQgYSBub25jZSB0byBldmVyeSBoZWFkZXIgY29udHJpYnV0aW9uIGFuZCB3aGl0ZWxpc3QgdGhpcyBub25jZS4gVGhpcyBhbGxvd3MgZm9yIGZsZXhpYmxlIGxvYWRpbmcgb2YgcmVzb3VyY2VzIHdpdGhvdXQgdGhlIG5lZWQgb2YgYSBjb21wbGV4IENTUC4gT2YgY291cnNlIGl0IGlzIHBvc3NpYmxlIHRvIG1vZGlmeSBhbmQgY3VzdG9taXplIHRoZSBDU1AsIGFkZCBhZGRpdGlvbmFsIGRpcmVjdGl2ZXMgb3IgZGlzYWJsZSBpdCBlbnRpcmVseS4gTG9va3VwIG91ciAmbHQ7YSBocmVmPSJodHRwOi8vd2lja2V0LmFwYWNoZS5vcmcvbGVhcm4vI2d1aWRlIiB0YXJnZXQ9Il9ibGFuayIiJmd0O2RvY3VtZW50YXRpb24mbHQ7L2EmZ3Q7IGZvciBtb3JlIGluZm9ybWF0aW9uLiAgICAgCisgICAgPC9wPgorICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPk5vIFJld3JpdGUgTmVjZXNzYXJ5PC9oMz4KKyAgICA8cD4KKyAgICAgIFRoZSBXaWNrZXQgdGVhbSBoYXMgYmVlbiB2ZXJ5IGNhcmVmdWwgb2YgYWRvcHRpbmcgSmF2YSA4IHRlY2hub2xvZ2llcyBhbmQgYXMgc3VjaCB5b3UgZG9u4oCZdCBoYXZlIHRvIHJld3JpdGUgeW91ciB3aG9sZSBhcHBsaWNhdGlvbiwgd2hpbHN0IHN0aWxsIHJlYXBpbmcgYWxsIHRoZSBiZW5lZml0cyBvZiBKYXZhIDguCisgICAgPC9wPgorICAgIDxwPgorICAgICAgQXMgdGhpcyBpcyBhIG5ldyBtYWpvciB2ZXJzaW9uIHdlIGhhdmUsIGluIGFjY29yZGFuY2Ugd2l0aCBzZW1hbnRpYyB2ZXJzaW9uaW5nLCBjbGVhbmVkIHVwIG1hbnkgQVBJcyBhbmQgeW91IHdpbGwgZ2V0IGNvbXBpbGUgZXJyb3JzIHdoZW4geW91IG1pZ3JhdGUgZnJvbSBwcmV2aW91cyBXaWNrZXQgdmVyc2lvbnMuCisgICAgPC9wPgorICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+TWlncmF0aW5nIHRvIFdpY2tldCA4PC9oMz4KKyAgICA8cD4KKyAgICAgIFdoZW4geW91IG1pZ3JhdGUgZnJvbSBhIHByZXZpb3VzIFdpY2tldCB2ZXJzaW9uIHRvIFdpY2tldCA4LCBhIGZ1bGwgbGlzdCBvZiBjaGFuZ2VzIGFuZCBtaWdyYXRpb25zIGlzIGF2YWlsYWJsZSBhdCB0aGUgZm9sbG93aW5nIHBhZ2U6CisgICAgPC9wPgorICAgIDxwPgorICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9zLmFwYWNoZS5vcmcvd2lja2V0OG1pZ3JhdGUiPmh0dHBzOi8vcy5hcGFjaGUub3JnL3dpY2tldDhtaWdyYXRlPC9hPgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIFBsZWFzZSBjb25zdWx0IHRoaXMgbWlncmF0aW9uIGd1aWRlIHdoZW4geW91IGFyZSBtb3ZpbmcgdG93YXJkcyBXaWNrZXQgOC4KKyAgICA8L3A+CisgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CisgICAgPGgyPkdldHRpbmcgU3RhcnRlZCB3aXRoIFdpY2tldCA5PC9oMj4KKyAgICA8cD4KKyAgICAgIEl0IGlzIHZlcnkgZWFzeSB0byBnZXQgc3RhcnRlZCB3aXRoIFdpY2tldDogdXNlIG91ciA8YSBocmVmPSIvc3RhcnQvcXVpY2tzdGFydC5odG1sIj5xdWljay1zdGFydCB3aXphcmQ8L2E+IG9yIAorICAgICAgdXNlIG9uZSBvZiB0aGUgb3B0aW9ucyBiZWxvdy4KKyAgICA8L3A+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5Eb3dubG9hZCB1c2luZyBBcGFjaGUgTWF2ZW48L2gzPgorICAgIDxwPgorICAgICAgV2l0aCBBcGFjaGUgTWF2ZW4gdXBkYXRlIHlvdXIgZGVwZW5kZW5jeSB0byAoYW5kIGRvbid0IGZvcmdldCB0bworICAgICAgdXBkYXRlIGFueSBvdGhlciBkZXBlbmRlbmNpZXMgb24gV2lja2V0IHByb2plY3RzIHRvIHRoZSBzYW1lIHZlcnNpb24pOgorICAgIDwvcD4KKworPGZpZ3VyZSBjbGFzcz0iaGlnaGxpZ2h0Ij48cHJlPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS14bWwiIGRhdGEtbGFuZz0ieG1sIj48c3BhbiBjbGFzcz0ibnQiPiZsdDtkZXBlbmRlbmN5Jmd0Ozwvc3Bhbj4KKyAgICA8c3BhbiBjbGFzcz0ibnQiPiZsdDtncm91cElkJmd0Ozwvc3Bhbj5vcmcuYXBhY2hlLndpY2tldDxzcGFuIGNsYXNzPSJudCI+Jmx0Oy9ncm91cElkJmd0Ozwvc3Bhbj4KKyAgICA8c3BhbiBjbGFzcz0ibnQiPiZsdDthcnRpZmFjdElkJmd0Ozwvc3Bhbj53aWNrZXQtY29yZTxzcGFuIGNsYXNzPSJudCI+Jmx0Oy9hcnRpZmFjdElkJmd0Ozwvc3Bhbj4KKyAgICA8c3BhbiBjbGFzcz0ibnQiPiZsdDt2ZXJzaW9uJmd0Ozwvc3Bhbj45LjAuMC1NNTxzcGFuIGNsYXNzPSJudCI+Jmx0Oy92ZXJzaW9uJmd0Ozwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJudCI+Jmx0Oy9kZXBlbmRlbmN5Jmd0Ozwvc3Bhbj48L2NvZGU+PC9wcmU+PC9maWd1cmU+CisKKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPkRvd25sb2FkIHNvdXJjZXMvYmluYXJpZXMgbWFudWFsbHk8L2gzPgorICAgIDxwPgorICAgICAgT3IgZG93bmxvYWQgYW5kIGJ1aWxkIHRoZSBkaXN0cmlidXRpb24geW91cnNlbGYsIG9yIHVzZSBvdXIKKyAgICAgIGNvbnZlbmllbmNlIGJpbmFyeSBwYWNrYWdlCisgICAgPC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5Tb3VyY2U6IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9keW4vY2xvc2VyLmNnaS93aWNrZXQvOS4wLjAtTTUiPjkuMC4wLU01IHNvdXJjZSBkb3dubG9hZDwvYT48L2xpPgorICAgICAgPGxpPkJpbmFyeTogPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2R5bi9jbG9zZXIuY2dpL3dpY2tldC85LjAuMC1NNS9iaW5hcmllcyI+OS4wLjAtTTUgYmluYXJ5IGRvd25sb2FkPC9hPjwvbGk+CisgICAgPC91bD4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGhyIC8+CisKKzxkaXYgY2xhc3M9ImwtZnVsbCBsLWZpcnN0IHByZWFtYmxlIj4KKyAgICA8aDEgaWQ9ImludHJvZHVjdGlvbiI+SW50cm9kdWNpbmcgQXBhY2hlJm5ic3A7V2lja2V0PC9oMT4KKyAgICA8cD5JbnZlbnRlZCBpbiAyMDA0LCBXaWNrZXQgaXMgb25lIG9mIHRoZSBmZXcgc3Vydml2b3JzIG9mIHRoZSBKYXZhCisgICAgc2VydmVyc2lkZSB3ZWIgZnJhbWV3b3JrIHdhcnMgb2YgdGhlIG1pZCAyMDAwJ3MuIFdpY2tldCBpcyBhbiBvcGVuCisgICAgc291cmNlLCBjb21wb25lbnQgb3JpZW50ZWQsIHNlcnZlcnNpZGUsIEphdmEgd2ViIGFwcGxpY2F0aW9uIGZyYW1ld29yay4KKyAgICBXaXRoIGEgaGlzdG9yeSBvZiBvdmVyIGEgZGVjYWRlLCBpdCBpcyBzdGlsbCBnb2luZyBzdHJvbmcgYW5kIGhhcyBhCisgICAgc29saWQgZnV0dXJlIGFoZWFkLiBMZWFybiB3aHkgeW91IHNob3VsZCBjb25zaWRlciBXaWNrZXQgZm9yIHlvdXIgbmV4dAorICAgIHdlYiBhcHBsaWNhdGlvbi48L3A+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGltZyBzcmM9Ii9pbWcvamF2YS13aWNrZXQtaHRtbDUucG5nIiBjbGFzcz0ibC1mdWxsIiAvPgorICAgICAgICA8aDM+SnVzdCBKYXZhICZhbXA7IEhUTUw8L2gzPgorICAgICAgICA8cD5MZXZlcmFnZSB3aGF0IHlvdSBrbm93IGFib3V0IEphdmEgb3IgeW91ciBmYXZvdXJpdGUgSFRNTCAKKyAgICAgICAgZWRpdG9yIHRvIHdyaXRlIFdpY2tldCBhcHBsaWNhdGlvbnMuIFdpdGggcHVyZSBKYXZhIGNvZGUgYW5kIEhUTUwgCisgICAgICAgIG1hcmt1cCBXaWNrZXQgaXMgdGhlIGdvLXRvIHdlYiBmcmFtZXdvcmsgZm9yIHB1cmlzdHMuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGltZyBzcmM9Ii9pbWcvd2lja2V0LXNhZmUucG5nIiBjbGFzcz0ibC1mdWxsIiAvPgorICAgICAgICA8aDM+U2VjdXJlIGJ5IERlZmF1bHQ8L2gzPgorICAgICAgICA8cD5VUkxzIGRvIG5vdCBleHBvc2Ugc2Vuc2l0aXZlIGluZm9ybWF0aW9uIGFuZCBhbGwgY29tcG9uZW50IHBhdGhzIGFyZQorICAgICAgICBzZXNzaW9uLXJlbGF0aXZlLiBXaWNrZXQga2VlcHMgeW91ciBtb2RlbCBwcml2YXRlIGV4Y2VwdCB0aG9zZSBwYXJ0cworICAgICAgICB5b3UgZXhwbGljaXRseSBleHBvc2UuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGltZyBzcmM9Ii9pbWcvd2lja2V0LWNvbXBvbmVudHMucG5nIiBjbGFzcz0ibC1mdWxsIiAvPgorICAgICAgICA8aDM+QUpBWCBDb21wb25lbnRzPC9oMz4KKyAgICAgICAgPHA+V3JpdGUgQWpheCBhcHBsaWNhdGlvbnMgd2l0aG91dCBoYXZpbmcgdG8gd3JpdGUgYSBzaW5nbGUgbGluZSAKKyAgICAgICAgb2YgSmF2YVNjcmlwdCBjb2RlLiBXaWNrZXQncyBBamF4IGZ1bmN0aW9uYWxpdHkgbWFrZXMgaXQgdHJpdmlhbCAKKyAgICAgICAgdG8gdXBkYXRlIHNlbGVjdGVkIHBhcnRzIG9mIGEgVUksIGFuZCBjb21lcyB3aXRoIGEgZ3JlYXQgc2VsZWN0aW9uIAorICAgICAgICBvZiBiYXNpYyBBamF4IGNvbXBvbmVudHMuPC9wPgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+T3BlbiBTb3VyY2Ugd2l0aCBBcGFjaGUgTGljZW5zZTwvaDM+CisgICAgICAgIDxwPlNpbmNlIGl0cyBpbmNlcHRpb24gaW4gMjAwNCBXaWNrZXQgaGFzIGJlZW4gYW4gb3BlbiBzb3VyY2UKKyAgICAgICAgcHJvamVjdCBhbmQgcmVtYWlucyBhdmFpbGFibGUgdW5kZXIgb25lIG9mIHRoZSBtb3N0IHBlcm1pc3NpdmUKKyAgICAgICAgbGljZW5zZXM6IHRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZS48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+TWFpbnRhaW5hYmxlIGNvZGU8L2gzPgorICAgICAgICA8cD5QYWdlcyBhbmQgQ29tcG9uZW50cyBpbiBXaWNrZXQgYXJlIHJlYWwgSmF2YSBvYmplY3RzIHRoYXQgc3VwcG9ydAorICAgICAgICBlbmNhcHN1bGF0aW9uLCBpbmhlcml0YW5jZSBhbmQgZXZlbnRzLiBDcmVhdGUgaGlnaCBsZXZlbCBjb21wb25lbnRzCisgICAgICAgIHdpdGggZWFzZSBhbmQgYnVuZGxlIGl0cyBzdHlsZXNoZWV0cywgSmF2YVNjcmlwdCBhbmQgb3RoZXIgcmVzb3VyY2VzCisgICAgICAgIGludG8gb25lIHJldXNhYmxlIHBhY2thZ2UuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPkludGVybmF0aW9uYWxpemVkIHRvIHRha2Ugb24gdGhlIHdvcmxkPC9oMz4KKyAgICAgICAgPHA+V2l0aCBzdXBwb3J0IG9mIG92ZXIgMjUgbGFuZ3VhZ2VzIG91dC1vZi10aGUtYm94LCBXaWNrZXQgbGV0J3MgCisgICAgICAgIHlvdSBnZXQgc3RhcnRlZCBpbiB5b3VyIG93biBsYW5ndWFnZSwgb3IgYSBzZWNvbmQgbGFuZ3VhZ2Ugd2l0aCBubyAKKyAgICAgICAgZWZmb3J0LiBZb3UgY2FuIHByb3ZpZGUgYWx0ZXJuYXRpdmUgbGFuZ3VhZ2VzIG9uIHRoZSBhcHBsaWNhdGlvbiwgCisgICAgICAgIHBhZ2UsIG9yIGV2ZW4gY29tcG9uZW50IGxldmVsLjwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPk11bHRpLXRhYiBhbmQgd2luZG93IHN1cHBvcnQ8L2gzPgorICAgICAgICA8cD5ObyBtb3JlIHBhaW4gd2hpbGUga2VlcGluZyB0YXBzIG9uIG11bHRpcGxlIHRhYnMgYW5kIHdpbmRvd3MuIAorICAgICAgICBXaWNrZXQncyBhdXRvbWF0aWMgc3RhdGUgc3RvcmFnZSBlbnN1cmVzIHRoYXQgeW91ciB1c2VycyBjYW4gb3BlbiAKKyAgICAgICAgcGFnZXMgaW4gbmV3IHRhYnMgYW5kIHdpbmRvd3Mgd2l0aG91dCBjYXVzaW5nIHByb2JsZW1zLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLXR3by10aGlyZCI+CisgICAgICAgIDxoMz5Xb3JrIHdpdGggSmF2YVNjcmlwdCBhbmQgQ1NTPC9oMz4KKyAgICAgICAgPHA+R2xvYmFsIEphdmFTY3JpcHQgbGlicmFyaWVzIGFuZCBDU1Mgc3R5bGluZyBtaXggcHJvcGVybHkgd2l0aCAKKyAgICAgICAgY29tcG9uZW50IGxvY2FsIEphdmFTY3JpcHQgYW5kIENTUyByZXNvdXJjZXMuIFlvdSBjYW4gdXNlIGN1c3RvbSAKKyAgICAgICAgY29tcG9uZW50IGxpYnJhcmllcyB0aGF0IHNoaXAgd2l0aCBkZWZhdWx0IEphdmFTY3JpcHQgYmVoYXZpb3VyIGFuZCAKKyAgICAgICAgQ1NTIHN0eWxpbmcsIHdpdGhvdXQgaGF2aW5nIHRvIGRvIGFueXRoaW5nIHlvdXJzZWxmLiBDcmVhdGluZyBzdWNoIAorICAgICAgICBzZWxmLWNvbnRhaW5lZCBjb21wb25lbnQgbGlicmFyaWVzIGlzIGFzIGVhc3kgYXMgY3JlYXRpbmcgYSBKQVIgCisgICAgICAgIGZpbGUuPC9wPgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+VGVzdCB5b3VyIHBhZ2VzIGFuZCBjb21wb25lbnRzPC9oMz4KKyAgICAgICAgPHA+V2l0aCBXaWNrZXRUZXN0ZXIgeW91IGNhbiBhY2hpZXZlIHRlc3RpbmcgY292ZXJhZ2UgeW91ciBRQSAKKyAgICAgICAgZGVwYXJ0bWVudCBjYW4gb25seSBkcmVhbSBvZi4gVGVzdCB5b3VyIHBhZ2VzIHdpdGhvdXQgaGF2aW5nIHRvIHJ1biAKKyAgICAgICAgaW5zaWRlIGEgYnJvd3Nlciwgb3Igc3RhcnQgYSBjb250YWluZXIuIFRlc3QgeW91ciBjb21wb25lbnRzIGRpcmVjdGx5LCAKKyAgICAgICAgY2hlY2sgdGhlaXIgcmVuZGVyZWQgbWFya3VwIHRhZ3MsIGF0dHJpYnV0ZXMgYW5kIGNvbnRlbnRzIHdpdGggZWFzZS48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+SW5qZWN0aW9uIHN1cHBvcnQ8L2gzPgorICAgICAgICA8cD5JbmplY3QgeW91ciBzZXJ2aWNlcyBpbnRvIHlvdXIgcGFnZXMgYW5kIGNvbXBvbmVudHMgd2l0aCB0aGUgCisgICAgICAgIHRlY2hub2xvZ3kgb2YgeW91ciBjaG9vc2luZzogV2lja2V0IHByb3ZpZGVzIGludGVncmF0aW9uIHdpdGggQ0RJIAorICAgICAgICAoSlNSLTMwNSksIFNwcmluZyBhbmQgR3VpY2UuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPkphdmFFRSBpbnRlZ3JhdGlvbjwvaDM+CisgICAgICAgIDxwPklmIHlvdSBhcmUgdXNpbmcgdGhlIFdlYiBwcm9maWxlIG9mIEphdmFFRSA2IG9yIG5ld2VyLCB5b3UgY2FuIAorICAgICAgICBsZXZlcmFnZSBKUEEsIEVKQnMsIEJlYW4gVmFsaWRhdGlvbiBhbmQgQ0RJIHdpdGggV2lja2V0J3MgaW50ZWdyYXRpb25zIAorICAgICAgICBmb3IgdGhlc2Ugc3BlY2lmaWNhdGlvbnMuPC9wPgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzwvZGl2PgorPGhyIC8+CisKKwY6BkVUClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi85Ny83NjIzN2JlYWMzZmFiZTJhYjAzMjQzNjIyNjc3OTdkZGEzZGYzMGE1NmNlOWQ0NWYwYzZhYzBhOTI1ZGM5YiBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vOTcvNzYyMzdiZWFjM2ZhYmUyYWIwMzI0MzYyMjY3Nzk3ZGRhM2RmMzBhNTZjZTlkNDVmMGM2YWMwYTkyNWRjOWIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWNmNTY3MQotLS0gL2Rldi9udWxsCisrKyBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vOTcvNzYyMzdiZWFjM2ZhYmUyYWIwMzI0MzYyMjY3Nzk3ZGRhM2RmMzBhNTZjZTlkNDVmMGM2YWMwYTkyNWRjOWIKQEAgLTAsMCArMSwyMTEgQEAKKwQISSICQyk8ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CisgICAgPGgxIGlkPSJpbnRyb2R1Y3Rpb24iPkFubm91bmNpbmcgQXBhY2hlJm5ic3A7V2lja2V0Jm5ic3A7ODogV3JpdGUgTGVzcywgQWNoaWV2ZSBNb3JlPC9oMT4KKyAgICA8ZGl2PgorICAgICAgPGltZyBzcmM9Ii9pbWcvbG9nby5zdmciIGFsdD0iQXBhY2hlIFdpY2tldCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIC8+CisgICAgPC9kaXY+CisgICAgPHA+CisgICAgICBUaGUgQXBhY2hlIFdpY2tldCBwcm9qZWN0IGFubm91bmNlcyB0aGUgOXRoIG1ham9yIHJlbGVhc2Ugb2YgdGhlIG9wZW4gc291cmNlIEphdmEgd2ViIGZyYW1ld29yayBzZXJ2aWNpbmcgd2Vic2l0ZXMgYW5kIGFwcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGdsb2JlIHNpbmNlIDIwMDQuIAorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIEJ1aWx0IG9uIHRvcCBvZiBKYXZhIDExLCB0aGlzIHZlcnNpb24gb2YgV2lja2V0IGJyaW5ncyB3ZWIgZGV2ZWxvcG1lbnQgaW50byB0aGUgbW9kZXJuIEphdmEgd29ybGQsIG9mZmVyaW5nIGEgZnVuZGFtZW50YWwgdG9vbCB0byBrZWVwIHlvdSBjb2RlIHVwIHRvIGRhdGUgd2l0aCBKYXZhIGV2b2x1dGlvbi4KKyAgICA8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QiPgorICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgorICAgIDxoMz5CcmluZyB0aGUgd2ViIGludG8gdGhlIG1vZGVybiBKYXZhIGVyYTwvaDM+CisgICAgPHA+CisgICAgIFRoZSByZWxlYXNlIG9mIEphdmEgOSBoYXMgYmVlbiBhIHR1cm5pbmcgcG9pbnQgaW4gSmF2YSBoaXN0b3J5IHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gZm9yIHRoZSBtb2Rlcm4gSmF2YSBlcmEuIEhvd2V2ZXIsIHRoZSBtYWduaXR1ZGUgb2YgdGhpcyBjaGFuZ2UgaGFzIGRpc2NvdXJhZ2UgbWFueSBkZXZlbG9wZXJzIGZyb20gbGVhdmluZyB0aGUgc2FmZSBoYXJib3IgcmFwcHJlc2VudGVkIGJ5IEphdmEgOC4gV2l0aCBXaWNrZXQgOSB3ZSBmaW5hbGx5IGhhdmUgYSBmdW5kYW1lbnRhbCB0b29sIHRvIG1vdmUgb24gYW5kIGJyaW5nIG91ciB3ZWIgYXBwbGljYXRpb24gaW50byB0aGUgbmV3IEphdmEgd29ybGQuICAKKyAgICA8L3A+CisgICAgPHA+CisgICAgICBXaXRoIHRoaXMgdmVyc2lvbiBXaWNrZXQgaGFzIGJlZW4gY29tcGxldGVkIHJldmlzaXRlZCBhbmQgaW1wcm92ZWQgdG8gZW1icmFjZSBuZXcgdGVjaG5vbG9naWVzIGxpa2UgSmF2YSBtb2R1bGFyaXphdGlvbiBhbmQgbmV3IGxpYnJhcnkgbGlrZSBKVW5pdCA1LgorICAgIDwvcD4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5TdGF5IHVwIHRvIGRhdGUgd2l0aCBKYXZhIHJlbGVhc2UgY3ljbGU8L2gzPgorICAgIDxwPgorICAgICAgV2l0aCBKYXZhIHJlbGVhc2luZyBhdCBhIGZhc3RlciBwaGFzZSBpdCdzIGltcG9ydGFudCB0byBrZWVwIGEgbGlicmFyeSB1cCB0byBkYXRlIHdpdGggdGhlIGxhc3Rlc3QgY2hhbmdlcyBpbnRyb2R1Y2VkIGluIHRoZSBwbGF0Zm9ybSBhbmQgZW5zdXJlIGl0IHdvcmtzIHdpdGggdGhlIGxhdGVzdCBKYXZhIHJlbGVhc2UuIFdpY2tldCBkb2VzIGFsbCBvZiB0aGlzIGJ5IHRha2luZyBwYXJ0IHRvIHRoZSA8YSBocmVmPSJodHRwczovL3dpa2kub3Blbmpkay5qYXZhLm5ldC9kaXNwbGF5L3F1YWxpdHkvUXVhbGl0eStPdXRyZWFjaCIgdGFyZ2V0PSJfYmxhbmsiPk9wZW5KREsgUXVhbGl0eSBPdXRyZWFjaDwvYT4sIGFuIGluaXRpYXRpdmUgYWltZWQgdG8gdGVzdCBwb3B1bGFyIE9wZW4gU291cmNlIHByb2plY3RzIHdpdGggYm90aCB0aGUgbGF0ZXN0IE9wZW5KREsgcmVsZWFzZSBhbmQgdGhlIEVhcmx5IEFjY2VzcyByZWxlYXNlLgorICAgIDwvcD4KKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPiBCZSByZWFkeSBmb3IgdGhlIG5leHQgSmF2YSBFbnRlcnByaXNlPC9oMz4KKyAgICA8cD4KKyAgICAgU2hvcnRseSBhZnRlciBKYXZhIDkgd2FzIHJlbGVhc2VkLCBPcmFjbGUgc3VibWl0dGVkIEphdmEgRUUgdG8gdGhlIEVjbGlwc2UgRm91bmRhdGlvbi4gQXMgc2lkZSBlZmZlY3Qgb2YgdGhpcyBvd25lciBjaGFuZ2UsIHRoZSBwYWNrYWdlIG5hbWUgJ2phdmF4JyBoYWQgdG8gYmUgbWlncmF0ZSB0byAnamFrYXJ0YScuIFdpY2tldCBoaXN0b3JpY2FsbHkgcHJvbW90ZWQgZGVjdXBsaW5nIGJldHdlZW4gSmF2YSBFRSBBUElzIGFuZCBhcHBsaWNhdGlvbiBjb2RlLCBoZW5jZSBtYWtpbmcgbXVjaCBtb3JlIGVhc2llciB0aGUgdHJhbnNpdGlvbiB0byB0aGUgZnV0dXJlIEphdmEgRW50ZXJwcmlzZSB2ZXJzaW9ucy4gCisgICAgPC9wPgorICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CisgICAgPGgzPlByb3RlY3QgeW91ciB3ZWIgYXBwcyB3aXRoIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IChDU1ApPC9oMz4KKyAgICA8cD4KKyAgICAgQXMgdGhlIG51bWJlciBvZiBzZWN1cml0eSB0aHJlYXRzIGdyb3dzLCBpdCdzIGNydWNpYWwgZm9yIHdlYiBhcHBsaWNhdGlvbnMgdG8gYWRvcHQgdGhlIGxhdGVzdCBzZWN1cml0eSBzdGFuZGFyZHMgYW5kIGNvdW50ZXJtZWFzdXJlcy4gQ1NQIGlzIGEgbW9kZXJuIHN0YW5kYXJkIHRoYXQgYWxsb3dzIGFwcGxpY2F0aW9ucyB0byBkZWNsYXJlIGFwcHJvdmVkIG9yaWdpbnMgb2YgY29udGVudCAoc3VjaCBhcyBKYXZhc2NyaXB0LCBDU1MsIGltYWdlcywgZXRjLi4uKSBmb3IgdGhlIGJyb3dzZXIgdG8gbG9hZC4gQ29uc3RydWN0aW5nIGEgc2FmZSBhbmQgYXQgdGhlIHNhbWUgdGltZSBjb21wbGV0ZSBDU1AgY2FuIGJlIGNoYWxsZW5naW5nLiAKKyAgICAgWW91IGVpdGhlciByaXNrIGxlYXZpbmcgaG9sZXMgaW4gdGhlIGRlZmVuc2Ugb2YgeW91ciBhcHBsaWNhdGlvbiBvciB5b3UgYnJlYWsgY2VydGFpbiBmdW5jdGlvbmFsaXR5LiBQcm90ZWN0aW5nIGFnYWluc3QgdW53YW50ZWQgaW5saW5lIHNjcmlwdHMgaXMgdGhlIG1vc3QgaW1wb3J0YW50IHRhcmdldCB0byBhdHRhaW4uIEluIENTUCB0aGlzIGlzIGNhbGxlZCAndW5zYWZlLWlubGluZScgYW5kIGl0J3MgdGhlIG1vc3QgY29tbW9uIGNhdXNlIG9mIGNyb3NzLXNpdGUgc2NyaXB0aW5nIHZ1bG5lcmFiaWxpdGllcy4KKyAgICA8L3A+CisgICAgPHA+CisgICAgIFdpY2tldCA5IGNvbWVzIHdpdGggZnVsbCBzdXBwb3J0IGZvciBDU1AgYW5kIGRvZXMgbm90IG5lZWQgYW55IHVuc2FmZSBkaXJlY3RpdmVzLiBXaWNrZXQgd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCBhIG5vbmNlIHRvIGV2ZXJ5IGhlYWRlciBjb250cmlidXRpb24gYW5kIHdoaXRlbGlzdCB0aGlzIG5vbmNlLiBUaGlzIGFsbG93cyBmb3IgZmxleGlibGUgbG9hZGluZyBvZiByZXNvdXJjZXMgd2l0aG91dCB0aGUgbmVlZCBvZiBhIGNvbXBsZXggQ1NQLiBPZiBjb3Vyc2UgaXQgaXMgcG9zc2libGUgdG8gbW9kaWZ5IGFuZCBjdXN0b21pemUgdGhlIENTUCwgYWRkIGFkZGl0aW9uYWwgZGlyZWN0aXZlcyBvciBkaXNhYmxlIGl0IGVudGlyZWx5LiBMb29rdXAgb3VyIDxhIGhyZWY9Imh0dHA6Ly93aWNrZXQuYXBhY2hlLm9yZy9sZWFybi8jZ3VpZGUiIHRhcmdldD0iX2JsYW5rIj5kb2N1bWVudGF0aW9uPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gICAgIAorICAgIDwvcD4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5ObyBSZXdyaXRlIE5lY2Vzc2FyeTwvaDM+CisgICAgPHA+CisgICAgICBUaGUgV2lja2V0IHRlYW0gaGFzIGJlZW4gdmVyeSBjYXJlZnVsIG9mIGFkb3B0aW5nIEphdmEgOCB0ZWNobm9sb2dpZXMgYW5kIGFzIHN1Y2ggeW91IGRvbuKAmXQgaGF2ZSB0byByZXdyaXRlIHlvdXIgd2hvbGUgYXBwbGljYXRpb24sIHdoaWxzdCBzdGlsbCByZWFwaW5nIGFsbCB0aGUgYmVuZWZpdHMgb2YgSmF2YSA4LgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIEFzIHRoaXMgaXMgYSBuZXcgbWFqb3IgdmVyc2lvbiB3ZSBoYXZlLCBpbiBhY2NvcmRhbmNlIHdpdGggc2VtYW50aWMgdmVyc2lvbmluZywgY2xlYW5lZCB1cCBtYW55IEFQSXMgYW5kIHlvdSB3aWxsIGdldCBjb21waWxlIGVycm9ycyB3aGVuIHlvdSBtaWdyYXRlIGZyb20gcHJldmlvdXMgV2lja2V0IHZlcnNpb25zLgorICAgIDwvcD4KKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPk1pZ3JhdGluZyB0byBXaWNrZXQgOTwvaDM+CisgICAgPHA+CisgICAgICBXaGVuIHlvdSBtaWdyYXRlIGZyb20gYSBwcmV2aW91cyBXaWNrZXQgdmVyc2lvbiB0byBXaWNrZXQgOSwgYSBmdWxsIGxpc3Qgb2YgY2hhbmdlcyBhbmQgbWlncmF0aW9ucyBpcyBhdmFpbGFibGUgYXQgdGhlIGZvbGxvd2luZyBwYWdlOgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIDxhIGhyZWY9Imh0dHBzOi8vcy5hcGFjaGUub3JnL3dpY2tldDltaWdyYXRlIj5odHRwczovL3MuYXBhY2hlLm9yZy93aWNrZXQ5bWlncmF0ZTwvYT4KKyAgICA8L3A+CisgICAgPHA+CisgICAgICBQbGVhc2UgY29uc3VsdCB0aGlzIG1pZ3JhdGlvbiBndWlkZSB3aGVuIHlvdSBhcmUgbW92aW5nIHRvd2FyZHMgV2lja2V0IDkuCisgICAgPC9wPgorICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgorICAgIDxoMj5HZXR0aW5nIFN0YXJ0ZWQgd2l0aCBXaWNrZXQgOTwvaDI+CisgICAgPHA+CisgICAgICBJdCBpcyB2ZXJ5IGVhc3kgdG8gZ2V0IHN0YXJ0ZWQgd2l0aCBXaWNrZXQ6IHVzZSBvdXIgPGEgaHJlZj0iL3N0YXJ0L3F1aWNrc3RhcnQuaHRtbCI+cXVpY2stc3RhcnQgd2l6YXJkPC9hPiBvciAKKyAgICAgIHVzZSBvbmUgb2YgdGhlIG9wdGlvbnMgYmVsb3cuCisgICAgPC9wPgorICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+RG93bmxvYWQgdXNpbmcgQXBhY2hlIE1hdmVuPC9oMz4KKyAgICA8cD4KKyAgICAgIFdpdGggQXBhY2hlIE1hdmVuIHVwZGF0ZSB5b3VyIGRlcGVuZGVuY3kgdG8gKGFuZCBkb24ndCBmb3JnZXQgdG8KKyAgICAgIHVwZGF0ZSBhbnkgb3RoZXIgZGVwZW5kZW5jaWVzIG9uIFdpY2tldCBwcm9qZWN0cyB0byB0aGUgc2FtZSB2ZXJzaW9uKToKKyAgICA8L3A+CisKKzxmaWd1cmUgY2xhc3M9ImhpZ2hsaWdodCI+PHByZT48Y29kZSBjbGFzcz0ibGFuZ3VhZ2UteG1sIiBkYXRhLWxhbmc9InhtbCI+PHNwYW4gY2xhc3M9Im50Ij4mbHQ7ZGVwZW5kZW5jeSZndDs8L3NwYW4+CisgICAgPHNwYW4gY2xhc3M9Im50Ij4mbHQ7Z3JvdXBJZCZndDs8L3NwYW4+b3JnLmFwYWNoZS53aWNrZXQ8c3BhbiBjbGFzcz0ibnQiPiZsdDsvZ3JvdXBJZCZndDs8L3NwYW4+CisgICAgPHNwYW4gY2xhc3M9Im50Ij4mbHQ7YXJ0aWZhY3RJZCZndDs8L3NwYW4+d2lja2V0LWNvcmU8c3BhbiBjbGFzcz0ibnQiPiZsdDsvYXJ0aWZhY3RJZCZndDs8L3NwYW4+CisgICAgPHNwYW4gY2xhc3M9Im50Ij4mbHQ7dmVyc2lvbiZndDs8L3NwYW4+OS4wLjAtTTU8c3BhbiBjbGFzcz0ibnQiPiZsdDsvdmVyc2lvbiZndDs8L3NwYW4+Cis8c3BhbiBjbGFzcz0ibnQiPiZsdDsvZGVwZW5kZW5jeSZndDs8L3NwYW4+PC9jb2RlPjwvcHJlPjwvZmlndXJlPgorCisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5Eb3dubG9hZCBzb3VyY2VzL2JpbmFyaWVzIG1hbnVhbGx5PC9oMz4KKyAgICA8cD4KKyAgICAgIE9yIGRvd25sb2FkIGFuZCBidWlsZCB0aGUgZGlzdHJpYnV0aW9uIHlvdXJzZWxmLCBvciB1c2Ugb3VyCisgICAgICBjb252ZW5pZW5jZSBiaW5hcnkgcGFja2FnZQorICAgIDwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+U291cmNlOiA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZHluL2Nsb3Nlci5jZ2kvd2lja2V0LzkuMC4wLU01Ij45LjAuMC1NNSBzb3VyY2UgZG93bmxvYWQ8L2E+PC9saT4KKyAgICAgIDxsaT5CaW5hcnk6IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9keW4vY2xvc2VyLmNnaS93aWNrZXQvOS4wLjAtTTUvYmluYXJpZXMiPjkuMC4wLU01IGJpbmFyeSBkb3dubG9hZDwvYT48L2xpPgorICAgIDwvdWw+CisgIDwvZGl2PgorPC9kaXY+CisKKzxociAvPgorCis8ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CisgICAgPGgxIGlkPSJpbnRyb2R1Y3Rpb24iPkludHJvZHVjaW5nIEFwYWNoZSZuYnNwO1dpY2tldDwvaDE+CisgICAgPHA+SW52ZW50ZWQgaW4gMjAwNCwgV2lja2V0IGlzIG9uZSBvZiB0aGUgZmV3IHN1cnZpdm9ycyBvZiB0aGUgSmF2YQorICAgIHNlcnZlcnNpZGUgd2ViIGZyYW1ld29yayB3YXJzIG9mIHRoZSBtaWQgMjAwMCdzLiBXaWNrZXQgaXMgYW4gb3BlbgorICAgIHNvdXJjZSwgY29tcG9uZW50IG9yaWVudGVkLCBzZXJ2ZXJzaWRlLCBKYXZhIHdlYiBhcHBsaWNhdGlvbiBmcmFtZXdvcmsuCisgICAgV2l0aCBhIGhpc3Rvcnkgb2Ygb3ZlciBhIGRlY2FkZSwgaXQgaXMgc3RpbGwgZ29pbmcgc3Ryb25nIGFuZCBoYXMgYQorICAgIHNvbGlkIGZ1dHVyZSBhaGVhZC4gTGVhcm4gd2h5IHlvdSBzaG91bGQgY29uc2lkZXIgV2lja2V0IGZvciB5b3VyIG5leHQKKyAgICB3ZWIgYXBwbGljYXRpb24uPC9wPgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxpbWcgc3JjPSIvaW1nL2phdmEtd2lja2V0LWh0bWw1LnBuZyIgY2xhc3M9ImwtZnVsbCIgLz4KKyAgICAgICAgPGgzPkp1c3QgSmF2YSAmYW1wOyBIVE1MPC9oMz4KKyAgICAgICAgPHA+TGV2ZXJhZ2Ugd2hhdCB5b3Uga25vdyBhYm91dCBKYXZhIG9yIHlvdXIgZmF2b3VyaXRlIEhUTUwgCisgICAgICAgIGVkaXRvciB0byB3cml0ZSBXaWNrZXQgYXBwbGljYXRpb25zLiBXaXRoIHB1cmUgSmF2YSBjb2RlIGFuZCBIVE1MIAorICAgICAgICBtYXJrdXAgV2lja2V0IGlzIHRoZSBnby10byB3ZWIgZnJhbWV3b3JrIGZvciBwdXJpc3RzLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxpbWcgc3JjPSIvaW1nL3dpY2tldC1zYWZlLnBuZyIgY2xhc3M9ImwtZnVsbCIgLz4KKyAgICAgICAgPGgzPlNlY3VyZSBieSBEZWZhdWx0PC9oMz4KKyAgICAgICAgPHA+VVJMcyBkbyBub3QgZXhwb3NlIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBhbmQgYWxsIGNvbXBvbmVudCBwYXRocyBhcmUKKyAgICAgICAgc2Vzc2lvbi1yZWxhdGl2ZS4gV2lja2V0IGtlZXBzIHlvdXIgbW9kZWwgcHJpdmF0ZSBleGNlcHQgdGhvc2UgcGFydHMKKyAgICAgICAgeW91IGV4cGxpY2l0bHkgZXhwb3NlLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxpbWcgc3JjPSIvaW1nL3dpY2tldC1jb21wb25lbnRzLnBuZyIgY2xhc3M9ImwtZnVsbCIgLz4KKyAgICAgICAgPGgzPkFKQVggQ29tcG9uZW50czwvaDM+CisgICAgICAgIDxwPldyaXRlIEFqYXggYXBwbGljYXRpb25zIHdpdGhvdXQgaGF2aW5nIHRvIHdyaXRlIGEgc2luZ2xlIGxpbmUgCisgICAgICAgIG9mIEphdmFTY3JpcHQgY29kZS4gV2lja2V0J3MgQWpheCBmdW5jdGlvbmFsaXR5IG1ha2VzIGl0IHRyaXZpYWwgCisgICAgICAgIHRvIHVwZGF0ZSBzZWxlY3RlZCBwYXJ0cyBvZiBhIFVJLCBhbmQgY29tZXMgd2l0aCBhIGdyZWF0IHNlbGVjdGlvbiAKKyAgICAgICAgb2YgYmFzaWMgQWpheCBjb21wb25lbnRzLjwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPk9wZW4gU291cmNlIHdpdGggQXBhY2hlIExpY2Vuc2U8L2gzPgorICAgICAgICA8cD5TaW5jZSBpdHMgaW5jZXB0aW9uIGluIDIwMDQgV2lja2V0IGhhcyBiZWVuIGFuIG9wZW4gc291cmNlCisgICAgICAgIHByb2plY3QgYW5kIHJlbWFpbnMgYXZhaWxhYmxlIHVuZGVyIG9uZSBvZiB0aGUgbW9zdCBwZXJtaXNzaXZlCisgICAgICAgIGxpY2Vuc2VzOiB0aGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPk1haW50YWluYWJsZSBjb2RlPC9oMz4KKyAgICAgICAgPHA+UGFnZXMgYW5kIENvbXBvbmVudHMgaW4gV2lja2V0IGFyZSByZWFsIEphdmEgb2JqZWN0cyB0aGF0IHN1cHBvcnQKKyAgICAgICAgZW5jYXBzdWxhdGlvbiwgaW5oZXJpdGFuY2UgYW5kIGV2ZW50cy4gQ3JlYXRlIGhpZ2ggbGV2ZWwgY29tcG9uZW50cworICAgICAgICB3aXRoIGVhc2UgYW5kIGJ1bmRsZSBpdHMgc3R5bGVzaGVldHMsIEphdmFTY3JpcHQgYW5kIG90aGVyIHJlc291cmNlcworICAgICAgICBpbnRvIG9uZSByZXVzYWJsZSBwYWNrYWdlLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5JbnRlcm5hdGlvbmFsaXplZCB0byB0YWtlIG9uIHRoZSB3b3JsZDwvaDM+CisgICAgICAgIDxwPldpdGggc3VwcG9ydCBvZiBvdmVyIDI1IGxhbmd1YWdlcyBvdXQtb2YtdGhlLWJveCwgV2lja2V0IGxldCdzIAorICAgICAgICB5b3UgZ2V0IHN0YXJ0ZWQgaW4geW91ciBvd24gbGFuZ3VhZ2UsIG9yIGEgc2Vjb25kIGxhbmd1YWdlIHdpdGggbm8gCisgICAgICAgIGVmZm9ydC4gWW91IGNhbiBwcm92aWRlIGFsdGVybmF0aXZlIGxhbmd1YWdlcyBvbiB0aGUgYXBwbGljYXRpb24sIAorICAgICAgICBwYWdlLCBvciBldmVuIGNvbXBvbmVudCBsZXZlbC48L3A+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5NdWx0aS10YWIgYW5kIHdpbmRvdyBzdXBwb3J0PC9oMz4KKyAgICAgICAgPHA+Tm8gbW9yZSBwYWluIHdoaWxlIGtlZXBpbmcgdGFwcyBvbiBtdWx0aXBsZSB0YWJzIGFuZCB3aW5kb3dzLiAKKyAgICAgICAgV2lja2V0J3MgYXV0b21hdGljIHN0YXRlIHN0b3JhZ2UgZW5zdXJlcyB0aGF0IHlvdXIgdXNlcnMgY2FuIG9wZW4gCisgICAgICAgIHBhZ2VzIGluIG5ldyB0YWJzIGFuZCB3aW5kb3dzIHdpdGhvdXQgY2F1c2luZyBwcm9ibGVtcy48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC10d28tdGhpcmQiPgorICAgICAgICA8aDM+V29yayB3aXRoIEphdmFTY3JpcHQgYW5kIENTUzwvaDM+CisgICAgICAgIDxwPkdsb2JhbCBKYXZhU2NyaXB0IGxpYnJhcmllcyBhbmQgQ1NTIHN0eWxpbmcgbWl4IHByb3Blcmx5IHdpdGggCisgICAgICAgIGNvbXBvbmVudCBsb2NhbCBKYXZhU2NyaXB0IGFuZCBDU1MgcmVzb3VyY2VzLiBZb3UgY2FuIHVzZSBjdXN0b20gCisgICAgICAgIGNvbXBvbmVudCBsaWJyYXJpZXMgdGhhdCBzaGlwIHdpdGggZGVmYXVsdCBKYXZhU2NyaXB0IGJlaGF2aW91ciBhbmQgCisgICAgICAgIENTUyBzdHlsaW5nLCB3aXRob3V0IGhhdmluZyB0byBkbyBhbnl0aGluZyB5b3Vyc2VsZi4gQ3JlYXRpbmcgc3VjaCAKKyAgICAgICAgc2VsZi1jb250YWluZWQgY29tcG9uZW50IGxpYnJhcmllcyBpcyBhcyBlYXN5IGFzIGNyZWF0aW5nIGEgSkFSIAorICAgICAgICBmaWxlLjwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPlRlc3QgeW91ciBwYWdlcyBhbmQgY29tcG9uZW50czwvaDM+CisgICAgICAgIDxwPldpdGggV2lja2V0VGVzdGVyIHlvdSBjYW4gYWNoaWV2ZSB0ZXN0aW5nIGNvdmVyYWdlIHlvdXIgUUEgCisgICAgICAgIGRlcGFydG1lbnQgY2FuIG9ubHkgZHJlYW0gb2YuIFRlc3QgeW91ciBwYWdlcyB3aXRob3V0IGhhdmluZyB0byBydW4gCisgICAgICAgIGluc2lkZSBhIGJyb3dzZXIsIG9yIHN0YXJ0IGEgY29udGFpbmVyLiBUZXN0IHlvdXIgY29tcG9uZW50cyBkaXJlY3RseSwgCisgICAgICAgIGNoZWNrIHRoZWlyIHJlbmRlcmVkIG1hcmt1cCB0YWdzLCBhdHRyaWJ1dGVzIGFuZCBjb250ZW50cyB3aXRoIGVhc2UuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPkluamVjdGlvbiBzdXBwb3J0PC9oMz4KKyAgICAgICAgPHA+SW5qZWN0IHlvdXIgc2VydmljZXMgaW50byB5b3VyIHBhZ2VzIGFuZCBjb21wb25lbnRzIHdpdGggdGhlIAorICAgICAgICB0ZWNobm9sb2d5IG9mIHlvdXIgY2hvb3Npbmc6IFdpY2tldCBwcm92aWRlcyBpbnRlZ3JhdGlvbiB3aXRoIENESSAKKyAgICAgICAgKEpTUi0zMDUpLCBTcHJpbmcgYW5kIEd1aWNlLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5KYXZhRUUgaW50ZWdyYXRpb248L2gzPgorICAgICAgICA8cD5JZiB5b3UgYXJlIHVzaW5nIHRoZSBXZWIgcHJvZmlsZSBvZiBKYXZhRUUgNiBvciBuZXdlciwgeW91IGNhbiAKKyAgICAgICAgbGV2ZXJhZ2UgSlBBLCBFSkJzLCBCZWFuIFZhbGlkYXRpb24gYW5kIENESSB3aXRoIFdpY2tldCdzIGludGVncmF0aW9ucyAKKyAgICAgICAgZm9yIHRoZXNlIHNwZWNpZmljYXRpb25zLjwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8L2Rpdj4KKzxociAvPgorCisGOgZFVApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vOWMvZTZlYTc5ZmMxZmIxYWExMTgwN2M1YWQwOTkzODhkZGMyMTNiYjA3ZmM2NGM2MDRhMzk5MWJkZTRkMjBmM2EgYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzljL2U2ZWE3OWZjMWZiMWFhMTE4MDdjNWFkMDk5Mzg4ZGRjMjEzYmIwN2ZjNjRjNjA0YTM5OTFiZGU0ZDIwZjNhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0OWNkNDkKLS0tIC9kZXYvbnVsbAorKysgYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzljL2U2ZWE3OWZjMWZiMWFhMTE4MDdjNWFkMDk5Mzg4ZGRjMjEzYmIwN2ZjNjRjNjA0YTM5OTFiZGU0ZDIwZjNhCkBAIC0wLDAgKzEsMjA4IEBACisECEkiAikpPGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgorICAgIDxoMSBpZD0iaW50cm9kdWN0aW9uIj5Bbm5vdW5jaW5nIEFwYWNoZSZuYnNwO1dpY2tldCZuYnNwOzg6IFdyaXRlIExlc3MsIEFjaGlldmUgTW9yZTwvaDE+CisgICAgPGRpdj4KKyAgICAgIDxpbWcgc3JjPSIvaW1nL2xvZ28uc3ZnIiBhbHQ9IkFwYWNoZSBXaWNrZXQiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiAvPgorICAgIDwvZGl2PgorICAgIDxwPgorICAgICAgVGhlIEFwYWNoZSBXaWNrZXQgcHJvamVjdCBhbm5vdW5jZXMgdGhlIDl0aCBtYWpvciByZWxlYXNlIG9mIHRoZSBvcGVuIHNvdXJjZSBKYXZhIHdlYiBmcmFtZXdvcmsgc2VydmljaW5nIHdlYnNpdGVzIGFuZCBhcHBsaWNhdGlvbnMgYWNyb3NzIHRoZSBnbG9iZSBzaW5jZSAyMDA0LiBCdWlsdCBvbiB0b3Agb2YgSmF2YSAxMSwgdGhpcyB2ZXJzaW9uIG9mIFdpY2tldCBicmluZ3Mgd2ViIGRldmVsb3BtZW50IGludG8gdGhlIG1vZGVybiBKYXZhIHdvcmxkLCBvZmZlcmluZyBhIGZ1bmRhbWVudGFsIHRvb2wgdG8ga2VlcCB5b3UgY29kZSB1cCB0byBkYXRlIHdpdGggSmF2YSBldm9sdXRpb24uCisgICAgPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKyAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KKyAgICA8aDM+QnJpbmcgdGhlIHdlYiBpbnRvIHRoZSBtb2Rlcm4gSmF2YSBlcmE8L2gzPgorICAgIDxwPgorICAgICBUaGUgcmVsZWFzZSBvZiBKYXZhIDkgaGFzIGJlZW4gYSB0dXJuaW5nIHBvaW50IGluIEphdmEgaGlzdG9yeSB3aGljaCBsYWlkIHRoZSBmb3VuZGF0aW9uIGZvciB0aGUgbW9kZXJuIEphdmEgZXJhLiBIb3dldmVyLCB0aGUgbWFnbml0dWRlIG9mIHRoaXMgY2hhbmdlIGhhcyBkaXNjb3VyYWdlIG1hbnkgZGV2ZWxvcGVycyBmcm9tIGxlYXZpbmcgdGhlIHNhZmUgaGFyYm9yIHJhcHByZXNlbnRlZCBieSBKYXZhIDguIFdpdGggV2lja2V0IDkgd2UgZmluYWxseSBoYXZlIGEgZnVuZGFtZW50YWwgdG9vbCB0byBtb3ZlIG9uIGFuZCBicmluZyBvdXIgd2ViIGFwcGxpY2F0aW9uIGludG8gdGhlIG5ldyBKYXZhIHdvcmxkLiAgCisgICAgPC9wPgorICAgIDxwPgorICAgICAgV2l0aCB0aGlzIHZlcnNpb24gV2lja2V0IGhhcyBiZWVuIGNvbXBsZXRlZCByZXZpc2l0ZWQgYW5kIGltcHJvdmVkIHRvIGVtYnJhY2UgbmV3IHRlY2hub2xvZ2llcyBsaWtlIEphdmEgbW9kdWxhcml6YXRpb24gYW5kIG5ldyBsaWJyYXJ5IGxpa2UgSlVuaXQgNS4KKyAgICA8L3A+CisgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+U3RheSB1cCB0byBkYXRlIHdpdGggSmF2YSByZWxlYXNlIGN5Y2xlPC9oMz4KKyAgICA8cD4KKyAgICAgIFdpdGggSmF2YSByZWxlYXNpbmcgYXQgYSBmYXN0ZXIgcGhhc2UgaXQncyBpbXBvcnRhbnQgdG8ga2VlcCBhIGxpYnJhcnkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXN0ZXN0IGNoYW5nZXMgaW50cm9kdWNlZCBpbiB0aGUgcGxhdGZvcm0gYW5kIGVuc3VyZSBpdCB3b3JrcyB3aXRoIHRoZSBsYXRlc3QgSmF2YSByZWxlYXNlLiBXaWNrZXQgZG9lcyBhbGwgb2YgdGhpcyBieSB0YWtpbmcgcGFydCB0byB0aGUgPGEgaHJlZj0iaHR0cHM6Ly93aWtpLm9wZW5qZGsuamF2YS5uZXQvZGlzcGxheS9xdWFsaXR5L1F1YWxpdHkrT3V0cmVhY2giIHRhcmdldD0iX2JsYW5rIj5PcGVuSkRLIFF1YWxpdHkgT3V0cmVhY2g8L2E+LCBhbiBpbml0aWF0aXZlIGFpbWVkIHRvIHRlc3QgcG9wdWxhciBPcGVuIFNvdXJjZSBwcm9qZWN0cyB3aXRoIGJvdGggdGhlIGxhdGVzdCBPcGVuSkRLIHJlbGVhc2UgYW5kIHRoZSBFYXJseSBBY2Nlc3MgcmVsZWFzZS4KKyAgICA8L3A+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz4gQmUgcmVhZHkgZm9yIHRoZSBuZXh0IEphdmEgRW50ZXJwcmlzZTwvaDM+CisgICAgPHA+CisgICAgIFNob3J0bHkgYWZ0ZXIgSmF2YSA5IHdhcyByZWxlYXNlZCwgT3JhY2xlIHN1Ym1pdHRlZCBKYXZhIEVFIHRvIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24uIEFzIHNpZGUgZWZmZWN0IG9mIHRoaXMgb3duZXIgY2hhbmdlLCB0aGUgcGFja2FnZSBuYW1lICdqYXZheCcgaGFkIHRvIGJlIG1pZ3JhdGUgdG8gJ2pha2FydGEnLiBXaWNrZXQgaGlzdG9yaWNhbGx5IHByb21vdGVkIGRlY3VwbGluZyBiZXR3ZWVuIEphdmEgRUUgQVBJcyBhbmQgYXBwbGljYXRpb24gY29kZSwgaGVuY2UgbWFraW5nIG11Y2ggbW9yZSBlYXNpZXIgdGhlIHRyYW5zaXRpb24gdG8gdGhlIGZ1dHVyZSBKYXZhIEVudGVycHJpc2UgdmVyc2lvbnMuIAorICAgIDwvcD4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgorICAgIDxoMz5Qcm90ZWN0IHlvdXIgd2ViIGFwcHMgd2l0aCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSAoQ1NQKTwvaDM+CisgICAgPHA+CisgICAgIEFzIHRoZSBudW1iZXIgb2Ygc2VjdXJpdHkgdGhyZWF0cyBncm93cywgaXQncyBjcnVjaWFsIGZvciB3ZWIgYXBwbGljYXRpb25zIHRvIGFkb3B0IHRoZSBsYXRlc3Qgc2VjdXJpdHkgc3RhbmRhcmRzIGFuZCBjb3VudGVybWVhc3VyZXMuIENTUCBpcyBhIG1vZGVybiBzdGFuZGFyZCB0aGF0IGFsbG93cyBhcHBsaWNhdGlvbnMgdG8gZGVjbGFyZSBhcHByb3ZlZCBvcmlnaW5zIG9mIGNvbnRlbnQgKHN1Y2ggYXMgSmF2YXNjcmlwdCwgQ1NTLCBpbWFnZXMsIGV0Yy4uLikgZm9yIHRoZSBicm93c2VyIHRvIGxvYWQuIENvbnN0cnVjdGluZyBhIHNhZmUgYW5kIGF0IHRoZSBzYW1lIHRpbWUgY29tcGxldGUgQ1NQIGNhbiBiZSBjaGFsbGVuZ2luZy4gCisgICAgIFlvdSBlaXRoZXIgcmlzayBsZWF2aW5nIGhvbGVzIGluIHRoZSBkZWZlbnNlIG9mIHlvdXIgYXBwbGljYXRpb24gb3IgeW91IGJyZWFrIGNlcnRhaW4gZnVuY3Rpb25hbGl0eS4gUHJvdGVjdGluZyBhZ2FpbnN0IHVud2FudGVkIGlubGluZSBzY3JpcHRzIGlzIHRoZSBtb3N0IGltcG9ydGFudCB0YXJnZXQgdG8gYXR0YWluLiBJbiBDU1AgdGhpcyBpcyBjYWxsZWQgJ3Vuc2FmZS1pbmxpbmUnIGFuZCBpdCdzIHRoZSBtb3N0IGNvbW1vbiBjYXVzZSBvZiBjcm9zcy1zaXRlIHNjcmlwdGluZyB2dWxuZXJhYmlsaXRpZXMuCisgICAgPC9wPgorICAgIDxwPgorICAgICBXaWNrZXQgOSBjb21lcyB3aXRoIGZ1bGwgc3VwcG9ydCBmb3IgQ1NQIGFuZCBkb2VzIG5vdCBuZWVkIGFueSB1bnNhZmUgZGlyZWN0aXZlcy4gV2lja2V0IHdpbGwgYXV0b21hdGljYWxseSBhZGQgYSBub25jZSB0byBldmVyeSBoZWFkZXIgY29udHJpYnV0aW9uIGFuZCB3aGl0ZWxpc3QgdGhpcyBub25jZS4gVGhpcyBhbGxvd3MgZm9yIGZsZXhpYmxlIGxvYWRpbmcgb2YgcmVzb3VyY2VzIHdpdGhvdXQgdGhlIG5lZWQgb2YgYSBjb21wbGV4IENTUC4gT2YgY291cnNlIGl0IGlzIHBvc3NpYmxlIHRvIG1vZGlmeSBhbmQgY3VzdG9taXplIHRoZSBDU1AsIGFkZCBhZGRpdGlvbmFsIGRpcmVjdGl2ZXMgb3IgZGlzYWJsZSBpdCBlbnRpcmVseS4gTG9va3VwIG91ciAmbHQ7YSBocmVmPSJodHRwOi8vd2lja2V0LmFwYWNoZS5vcmcvbGVhcm4vI2d1aWRlIiB0YXJnZXQ9Il9ibGFuayIiJmd0O2RvY3VtZW50YXRpb24mbHQ7L2EmZ3Q7IGZvciBtb3JlIGluZm9ybWF0aW9uLiAgICAgCisgICAgPC9wPgorICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPk5vIFJld3JpdGUgTmVjZXNzYXJ5PC9oMz4KKyAgICA8cD4KKyAgICAgIFRoZSBXaWNrZXQgdGVhbSBoYXMgYmVlbiB2ZXJ5IGNhcmVmdWwgb2YgYWRvcHRpbmcgSmF2YSA4IHRlY2hub2xvZ2llcyBhbmQgYXMgc3VjaCB5b3UgZG9u4oCZdCBoYXZlIHRvIHJld3JpdGUgeW91ciB3aG9sZSBhcHBsaWNhdGlvbiwgd2hpbHN0IHN0aWxsIHJlYXBpbmcgYWxsIHRoZSBiZW5lZml0cyBvZiBKYXZhIDguCisgICAgPC9wPgorICAgIDxwPgorICAgICAgQXMgdGhpcyBpcyBhIG5ldyBtYWpvciB2ZXJzaW9uIHdlIGhhdmUsIGluIGFjY29yZGFuY2Ugd2l0aCBzZW1hbnRpYyB2ZXJzaW9uaW5nLCBjbGVhbmVkIHVwIG1hbnkgQVBJcyBhbmQgeW91IHdpbGwgZ2V0IGNvbXBpbGUgZXJyb3JzIHdoZW4geW91IG1pZ3JhdGUgZnJvbSBwcmV2aW91cyBXaWNrZXQgdmVyc2lvbnMuCisgICAgPC9wPgorICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+TWlncmF0aW5nIHRvIFdpY2tldCA4PC9oMz4KKyAgICA8cD4KKyAgICAgIFdoZW4geW91IG1pZ3JhdGUgZnJvbSBhIHByZXZpb3VzIFdpY2tldCB2ZXJzaW9uIHRvIFdpY2tldCA4LCBhIGZ1bGwgbGlzdCBvZiBjaGFuZ2VzIGFuZCBtaWdyYXRpb25zIGlzIGF2YWlsYWJsZSBhdCB0aGUgZm9sbG93aW5nIHBhZ2U6CisgICAgPC9wPgorICAgIDxwPgorICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9zLmFwYWNoZS5vcmcvd2lja2V0OG1pZ3JhdGUiPmh0dHBzOi8vcy5hcGFjaGUub3JnL3dpY2tldDhtaWdyYXRlPC9hPgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIFBsZWFzZSBjb25zdWx0IHRoaXMgbWlncmF0aW9uIGd1aWRlIHdoZW4geW91IGFyZSBtb3ZpbmcgdG93YXJkcyBXaWNrZXQgOC4KKyAgICA8L3A+CisgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CisgICAgPGgyPkdldHRpbmcgU3RhcnRlZCB3aXRoIFdpY2tldCA4PC9oMj4KKyAgICA8cD4KKyAgICAgIEl0IGlzIHZlcnkgZWFzeSB0byBnZXQgc3RhcnRlZCB3aXRoIFdpY2tldDogdXNlIG91ciA8YSBocmVmPSIvc3RhcnQvcXVpY2tzdGFydC5odG1sIj5xdWljay1zdGFydCB3aXphcmQ8L2E+IG9yIAorICAgICAgdXNlIG9uZSBvZiB0aGUgb3B0aW9ucyBiZWxvdy4KKyAgICA8L3A+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5Eb3dubG9hZCB1c2luZyBBcGFjaGUgTWF2ZW48L2gzPgorICAgIDxwPgorICAgICAgV2l0aCBBcGFjaGUgTWF2ZW4gdXBkYXRlIHlvdXIgZGVwZW5kZW5jeSB0byAoYW5kIGRvbid0IGZvcmdldCB0bworICAgICAgdXBkYXRlIGFueSBvdGhlciBkZXBlbmRlbmNpZXMgb24gV2lja2V0IHByb2plY3RzIHRvIHRoZSBzYW1lIHZlcnNpb24pOgorICAgIDwvcD4KKworPGZpZ3VyZSBjbGFzcz0iaGlnaGxpZ2h0Ij48cHJlPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS14bWwiIGRhdGEtbGFuZz0ieG1sIj48c3BhbiBjbGFzcz0ibnQiPiZsdDtkZXBlbmRlbmN5Jmd0Ozwvc3Bhbj4KKyAgICA8c3BhbiBjbGFzcz0ibnQiPiZsdDtncm91cElkJmd0Ozwvc3Bhbj5vcmcuYXBhY2hlLndpY2tldDxzcGFuIGNsYXNzPSJudCI+Jmx0Oy9ncm91cElkJmd0Ozwvc3Bhbj4KKyAgICA8c3BhbiBjbGFzcz0ibnQiPiZsdDthcnRpZmFjdElkJmd0Ozwvc3Bhbj53aWNrZXQtY29yZTxzcGFuIGNsYXNzPSJudCI+Jmx0Oy9hcnRpZmFjdElkJmd0Ozwvc3Bhbj4KKyAgICA8c3BhbiBjbGFzcz0ibnQiPiZsdDt2ZXJzaW9uJmd0Ozwvc3Bhbj44LjguMDxzcGFuIGNsYXNzPSJudCI+Jmx0Oy92ZXJzaW9uJmd0Ozwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJudCI+Jmx0Oy9kZXBlbmRlbmN5Jmd0Ozwvc3Bhbj48L2NvZGU+PC9wcmU+PC9maWd1cmU+CisKKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPkRvd25sb2FkIHNvdXJjZXMvYmluYXJpZXMgbWFudWFsbHk8L2gzPgorICAgIDxwPgorICAgICAgT3IgZG93bmxvYWQgYW5kIGJ1aWxkIHRoZSBkaXN0cmlidXRpb24geW91cnNlbGYsIG9yIHVzZSBvdXIKKyAgICAgIGNvbnZlbmllbmNlIGJpbmFyeSBwYWNrYWdlCisgICAgPC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5Tb3VyY2U6IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9keW4vY2xvc2VyLmNnaS93aWNrZXQvOC44LjAiPjguOC4wIHNvdXJjZSBkb3dubG9hZDwvYT48L2xpPgorICAgICAgPGxpPkJpbmFyeTogPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2R5bi9jbG9zZXIuY2dpL3dpY2tldC84LjguMC9iaW5hcmllcyI+OC44LjAgYmluYXJ5IGRvd25sb2FkPC9hPjwvbGk+CisgICAgPC91bD4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGhyIC8+CisKKzxkaXYgY2xhc3M9ImwtZnVsbCBsLWZpcnN0IHByZWFtYmxlIj4KKyAgICA8aDEgaWQ9ImludHJvZHVjdGlvbiI+SW50cm9kdWNpbmcgQXBhY2hlJm5ic3A7V2lja2V0PC9oMT4KKyAgICA8cD5JbnZlbnRlZCBpbiAyMDA0LCBXaWNrZXQgaXMgb25lIG9mIHRoZSBmZXcgc3Vydml2b3JzIG9mIHRoZSBKYXZhCisgICAgc2VydmVyc2lkZSB3ZWIgZnJhbWV3b3JrIHdhcnMgb2YgdGhlIG1pZCAyMDAwJ3MuIFdpY2tldCBpcyBhbiBvcGVuCisgICAgc291cmNlLCBjb21wb25lbnQgb3JpZW50ZWQsIHNlcnZlcnNpZGUsIEphdmEgd2ViIGFwcGxpY2F0aW9uIGZyYW1ld29yay4KKyAgICBXaXRoIGEgaGlzdG9yeSBvZiBvdmVyIGEgZGVjYWRlLCBpdCBpcyBzdGlsbCBnb2luZyBzdHJvbmcgYW5kIGhhcyBhCisgICAgc29saWQgZnV0dXJlIGFoZWFkLiBMZWFybiB3aHkgeW91IHNob3VsZCBjb25zaWRlciBXaWNrZXQgZm9yIHlvdXIgbmV4dAorICAgIHdlYiBhcHBsaWNhdGlvbi48L3A+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGltZyBzcmM9Ii9pbWcvamF2YS13aWNrZXQtaHRtbDUucG5nIiBjbGFzcz0ibC1mdWxsIiAvPgorICAgICAgICA8aDM+SnVzdCBKYXZhICZhbXA7IEhUTUw8L2gzPgorICAgICAgICA8cD5MZXZlcmFnZSB3aGF0IHlvdSBrbm93IGFib3V0IEphdmEgb3IgeW91ciBmYXZvdXJpdGUgSFRNTCAKKyAgICAgICAgZWRpdG9yIHRvIHdyaXRlIFdpY2tldCBhcHBsaWNhdGlvbnMuIFdpdGggcHVyZSBKYXZhIGNvZGUgYW5kIEhUTUwgCisgICAgICAgIG1hcmt1cCBXaWNrZXQgaXMgdGhlIGdvLXRvIHdlYiBmcmFtZXdvcmsgZm9yIHB1cmlzdHMuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGltZyBzcmM9Ii9pbWcvd2lja2V0LXNhZmUucG5nIiBjbGFzcz0ibC1mdWxsIiAvPgorICAgICAgICA8aDM+U2VjdXJlIGJ5IERlZmF1bHQ8L2gzPgorICAgICAgICA8cD5VUkxzIGRvIG5vdCBleHBvc2Ugc2Vuc2l0aXZlIGluZm9ybWF0aW9uIGFuZCBhbGwgY29tcG9uZW50IHBhdGhzIGFyZQorICAgICAgICBzZXNzaW9uLXJlbGF0aXZlLiBXaWNrZXQga2VlcHMgeW91ciBtb2RlbCBwcml2YXRlIGV4Y2VwdCB0aG9zZSBwYXJ0cworICAgICAgICB5b3UgZXhwbGljaXRseSBleHBvc2UuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGltZyBzcmM9Ii9pbWcvd2lja2V0LWNvbXBvbmVudHMucG5nIiBjbGFzcz0ibC1mdWxsIiAvPgorICAgICAgICA8aDM+QUpBWCBDb21wb25lbnRzPC9oMz4KKyAgICAgICAgPHA+V3JpdGUgQWpheCBhcHBsaWNhdGlvbnMgd2l0aG91dCBoYXZpbmcgdG8gd3JpdGUgYSBzaW5nbGUgbGluZSAKKyAgICAgICAgb2YgSmF2YVNjcmlwdCBjb2RlLiBXaWNrZXQncyBBamF4IGZ1bmN0aW9uYWxpdHkgbWFrZXMgaXQgdHJpdmlhbCAKKyAgICAgICAgdG8gdXBkYXRlIHNlbGVjdGVkIHBhcnRzIG9mIGEgVUksIGFuZCBjb21lcyB3aXRoIGEgZ3JlYXQgc2VsZWN0aW9uIAorICAgICAgICBvZiBiYXNpYyBBamF4IGNvbXBvbmVudHMuPC9wPgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+T3BlbiBTb3VyY2Ugd2l0aCBBcGFjaGUgTGljZW5zZTwvaDM+CisgICAgICAgIDxwPlNpbmNlIGl0cyBpbmNlcHRpb24gaW4gMjAwNCBXaWNrZXQgaGFzIGJlZW4gYW4gb3BlbiBzb3VyY2UKKyAgICAgICAgcHJvamVjdCBhbmQgcmVtYWlucyBhdmFpbGFibGUgdW5kZXIgb25lIG9mIHRoZSBtb3N0IHBlcm1pc3NpdmUKKyAgICAgICAgbGljZW5zZXM6IHRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZS48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+TWFpbnRhaW5hYmxlIGNvZGU8L2gzPgorICAgICAgICA8cD5QYWdlcyBhbmQgQ29tcG9uZW50cyBpbiBXaWNrZXQgYXJlIHJlYWwgSmF2YSBvYmplY3RzIHRoYXQgc3VwcG9ydAorICAgICAgICBlbmNhcHN1bGF0aW9uLCBpbmhlcml0YW5jZSBhbmQgZXZlbnRzLiBDcmVhdGUgaGlnaCBsZXZlbCBjb21wb25lbnRzCisgICAgICAgIHdpdGggZWFzZSBhbmQgYnVuZGxlIGl0cyBzdHlsZXNoZWV0cywgSmF2YVNjcmlwdCBhbmQgb3RoZXIgcmVzb3VyY2VzCisgICAgICAgIGludG8gb25lIHJldXNhYmxlIHBhY2thZ2UuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPkludGVybmF0aW9uYWxpemVkIHRvIHRha2Ugb24gdGhlIHdvcmxkPC9oMz4KKyAgICAgICAgPHA+V2l0aCBzdXBwb3J0IG9mIG92ZXIgMjUgbGFuZ3VhZ2VzIG91dC1vZi10aGUtYm94LCBXaWNrZXQgbGV0J3MgCisgICAgICAgIHlvdSBnZXQgc3RhcnRlZCBpbiB5b3VyIG93biBsYW5ndWFnZSwgb3IgYSBzZWNvbmQgbGFuZ3VhZ2Ugd2l0aCBubyAKKyAgICAgICAgZWZmb3J0LiBZb3UgY2FuIHByb3ZpZGUgYWx0ZXJuYXRpdmUgbGFuZ3VhZ2VzIG9uIHRoZSBhcHBsaWNhdGlvbiwgCisgICAgICAgIHBhZ2UsIG9yIGV2ZW4gY29tcG9uZW50IGxldmVsLjwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPk11bHRpLXRhYiBhbmQgd2luZG93IHN1cHBvcnQ8L2gzPgorICAgICAgICA8cD5ObyBtb3JlIHBhaW4gd2hpbGUga2VlcGluZyB0YXBzIG9uIG11bHRpcGxlIHRhYnMgYW5kIHdpbmRvd3MuIAorICAgICAgICBXaWNrZXQncyBhdXRvbWF0aWMgc3RhdGUgc3RvcmFnZSBlbnN1cmVzIHRoYXQgeW91ciB1c2VycyBjYW4gb3BlbiAKKyAgICAgICAgcGFnZXMgaW4gbmV3IHRhYnMgYW5kIHdpbmRvd3Mgd2l0aG91dCBjYXVzaW5nIHByb2JsZW1zLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLXR3by10aGlyZCI+CisgICAgICAgIDxoMz5Xb3JrIHdpdGggSmF2YVNjcmlwdCBhbmQgQ1NTPC9oMz4KKyAgICAgICAgPHA+R2xvYmFsIEphdmFTY3JpcHQgbGlicmFyaWVzIGFuZCBDU1Mgc3R5bGluZyBtaXggcHJvcGVybHkgd2l0aCAKKyAgICAgICAgY29tcG9uZW50IGxvY2FsIEphdmFTY3JpcHQgYW5kIENTUyByZXNvdXJjZXMuIFlvdSBjYW4gdXNlIGN1c3RvbSAKKyAgICAgICAgY29tcG9uZW50IGxpYnJhcmllcyB0aGF0IHNoaXAgd2l0aCBkZWZhdWx0IEphdmFTY3JpcHQgYmVoYXZpb3VyIGFuZCAKKyAgICAgICAgQ1NTIHN0eWxpbmcsIHdpdGhvdXQgaGF2aW5nIHRvIGRvIGFueXRoaW5nIHlvdXJzZWxmLiBDcmVhdGluZyBzdWNoIAorICAgICAgICBzZWxmLWNvbnRhaW5lZCBjb21wb25lbnQgbGlicmFyaWVzIGlzIGFzIGVhc3kgYXMgY3JlYXRpbmcgYSBKQVIgCisgICAgICAgIGZpbGUuPC9wPgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+VGVzdCB5b3VyIHBhZ2VzIGFuZCBjb21wb25lbnRzPC9oMz4KKyAgICAgICAgPHA+V2l0aCBXaWNrZXRUZXN0ZXIgeW91IGNhbiBhY2hpZXZlIHRlc3RpbmcgY292ZXJhZ2UgeW91ciBRQSAKKyAgICAgICAgZGVwYXJ0bWVudCBjYW4gb25seSBkcmVhbSBvZi4gVGVzdCB5b3VyIHBhZ2VzIHdpdGhvdXQgaGF2aW5nIHRvIHJ1biAKKyAgICAgICAgaW5zaWRlIGEgYnJvd3Nlciwgb3Igc3RhcnQgYSBjb250YWluZXIuIFRlc3QgeW91ciBjb21wb25lbnRzIGRpcmVjdGx5LCAKKyAgICAgICAgY2hlY2sgdGhlaXIgcmVuZGVyZWQgbWFya3VwIHRhZ3MsIGF0dHJpYnV0ZXMgYW5kIGNvbnRlbnRzIHdpdGggZWFzZS48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+SW5qZWN0aW9uIHN1cHBvcnQ8L2gzPgorICAgICAgICA8cD5JbmplY3QgeW91ciBzZXJ2aWNlcyBpbnRvIHlvdXIgcGFnZXMgYW5kIGNvbXBvbmVudHMgd2l0aCB0aGUgCisgICAgICAgIHRlY2hub2xvZ3kgb2YgeW91ciBjaG9vc2luZzogV2lja2V0IHByb3ZpZGVzIGludGVncmF0aW9uIHdpdGggQ0RJIAorICAgICAgICAoSlNSLTMwNSksIFNwcmluZyBhbmQgR3VpY2UuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPkphdmFFRSBpbnRlZ3JhdGlvbjwvaDM+CisgICAgICAgIDxwPklmIHlvdSBhcmUgdXNpbmcgdGhlIFdlYiBwcm9maWxlIG9mIEphdmFFRSA2IG9yIG5ld2VyLCB5b3UgY2FuIAorICAgICAgICBsZXZlcmFnZSBKUEEsIEVKQnMsIEJlYW4gVmFsaWRhdGlvbiBhbmQgQ0RJIHdpdGggV2lja2V0J3MgaW50ZWdyYXRpb25zIAorICAgICAgICBmb3IgdGhlc2Ugc3BlY2lmaWNhdGlvbnMuPC9wPgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzwvZGl2PgorPGhyIC8+CisKKwY6BkVUClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOCBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vOWQvOWRiM2EwMTkxYzFiOWM1ODY5Y2JkOTAwMDgyMDY0ZGFkMTQ5ZmY2ODAwZmRkNjk3YmQ2NmNkZjkxMjI3Y2MKc2ltaWxhcml0eSBpbmRleCA5NiUKY29weSBmcm9tIC5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMDkvOGY0MDYwOTczNWRkOGEyNWIxZDk0MzllZmEyYjhkNWRjNGZkZGUwNDMwZTRiMjgxNDRmNjFjMjE1MDI2YTgKY29weSB0byAuamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzlkLzlkYjNhMDE5MWMxYjljNTg2OWNiZDkwMDA4MjA2NGRhZDE0OWZmNjgwMGZkZDY5N2JkNjZjZGY5MTIyN2NjCmluZGV4IGY2MzFlNGIuLjI3MTA3NjQgMTAwNjQ0Ci0tLSBhLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMDkvOGY0MDYwOTczNWRkOGEyNWIxZDk0MzllZmEyYjhkNWRjNGZkZGUwNDMwZTRiMjgxNDRmNjFjMjE1MDI2YTgKKysrIGIvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi85ZC85ZGIzYTAxOTFjMWI5YzU4NjljYmQ5MDAwODIwNjRkYWQxNDlmZjY4MDBmZGQ2OTdiZDY2Y2RmOTEyMjdjYwpAQCAtMSw1ICsxLDggQEAKLQQISSICcj08ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CisECEkiAiQ+PGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgogICAgIDxoMSBpZD0iaW50cm9kdWN0aW9uIj5Bbm5vdW5jaW5nIEFwYWNoZSZuYnNwO1dpY2tldCZuYnNwOzg6IFdyaXRlIExlc3MsIEFjaGlldmUgTW9yZTwvaDE+CisgICAgPGRpdj4KKyAgICAgIDxpbWcgc3JjPSIvaW1nL2xvZ28uc3ZnIiBhbHQ9IkFwYWNoZSBXaWNrZXQiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiAvPgorICAgIDwvZGl2PgogICAgIDxwPgogICAgICAgVGhlIEFwYWNoZSBXaWNrZXQgcHJvamVjdCBhbm5vdW5jZXMgdGhlIDh0aCBtYWpvciByZWxlYXNlIG9mIHRoZSBvcGVuIHNvdXJjZSBKYXZhIHdlYiBmcmFtZXdvcmsgc2VydmljaW5nIHdlYnNpdGVzIGFuZCBhcHBsaWNhdGlvbnMgYWNyb3NzIHRoZSBnbG9iZSBmb3Igb3ZlciBhIGRlY2FkZS4gV2l0aCB0aGlzIHJlbGVhc2UgV2lja2V0IGVtYnJhY2VzIEphdmEgOCBpZGlvbXMgZnVsbHksIGFsbG93aW5nIHRoZSB1c2Ugb2YgbGFtYmRhIGV4cHJlc3Npb25zIGluIGFsbCB0aGUgcmlnaHQgcGxhY2VzLiBXaXRoIFdpY2tldCA4IHlvdSBjYW4gd3JpdGUgZmV3ZXIsIGZhc3RlciBhbmQgbW9yZSBtYWludGFpbmFibGUgY29kZS4KICAgICA8L3A+CkBAIC0xNyw3ICsyMCw3IEBACiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgPGgzPkphdmEgOCsgUmVxdWlyZWQ8L2gzPgogICAgIDxwPgpAQCAtNDAsNyArNDMsNyBAQAogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLXR3by10aGlyZCI+CiAgICAgPGgzPkxhbWJkYXMgaW4gQWxsIFRoZSBSaWdodCBQbGFjZXM8L2gzPgogICAgIDxwPgpAQCAtNTIsNyArNTUsNyBAQAogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgogICAgIDxoMz5PcHRpb25hbCBpcyBTb21ldGltZXMgUmVxdWlyZWQ8L2gzPgogICA8L2Rpdj4KQEAgLTkxLDcgKzk0LDcgQEAKICAgPC9kaXY+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgzPk1vZGVscyBhcyBGdW5jdGlvbmFsIEludGVyZmFjZTwvaDM+CiAgICAgPHA+CkBAIC0xMTgsNyArMTIxLDcgQEAKICAgPC9kaXY+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CiAgICAgPGgzPk5vIFJld3JpdGUgTmVjZXNzYXJ5PC9oMz4KICAgICA8cD4KQEAgLTE0MSw3ICsxNDQsNyBAQAogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgogICAgIDxoMj5HZXR0aW5nIFN0YXJ0ZWQgd2l0aCBXaWNrZXQgODwvaDI+CiAgICAgPHA+CkBAIC0xODgsNyArMTkxLDcgQEAKICAgICB3ZWIgYXBwbGljYXRpb24uPC9wPgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGltZyBzcmM9Ii9pbWcvamF2YS13aWNrZXQtaHRtbDUucG5nIiBjbGFzcz0ibC1mdWxsIiAvPgogICAgICAgICA8aDM+SnVzdCBKYXZhICZhbXA7IEhUTUw8L2gzPgpAQCAtMjEyLDcgKzIxNSw3IEBACiAgICAgICAgIG9mIGJhc2ljIEFqYXggY29tcG9uZW50cy48L3A+CiAgICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGgzPk9wZW4gU291cmNlIHdpdGggQXBhY2hlIExpY2Vuc2U8L2gzPgogICAgICAgICA8cD5TaW5jZSBpdHMgaW5jZXB0aW9uIGluIDIwMDQgV2lja2V0IGhhcyBiZWVuIGFuIG9wZW4gc291cmNlCkBAIC0yMzQsNyArMjM3LDcgQEAKICAgICAgICAgcGFnZSwgb3IgZXZlbiBjb21wb25lbnQgbGV2ZWwuPC9wPgogICAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxoMz5NdWx0aS10YWIgYW5kIHdpbmRvdyBzdXBwb3J0PC9oMz4KICAgICAgICAgPHA+Tm8gbW9yZSBwYWluIHdoaWxlIGtlZXBpbmcgdGFwcyBvbiBtdWx0aXBsZSB0YWJzIGFuZCB3aW5kb3dzLiAKQEAgLTI1MSw3ICsyNTQsNyBAQAogICAgICAgICBmaWxlLjwvcD4KICAgICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aDM+VGVzdCB5b3VyIHBhZ2VzIGFuZCBjb21wb25lbnRzPC9oMz4KICAgICAgICAgPHA+V2l0aCBXaWNrZXRUZXN0ZXIgeW91IGNhbiBhY2hpZXZlIHRlc3RpbmcgY292ZXJhZ2UgeW91ciBRQSAKQEAgLTI3NCw0ICsyNzcsNiBAQAogPC9kaXY+CiA8ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KIDwvZGl2PgorPGhyIC8+CisKIAY6BkVUClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi9hOC9iODRlNDBjMzIxZWU3YmM4ODdhODE3ZTAyMTA4OTYyOTc1MTk0ZjU1ODkxMWIwOGRlMjc4YmFjNjRiZGI0NyBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vYTgvYjg0ZTQwYzMyMWVlN2JjODg3YTgxN2UwMjEwODk2Mjk3NTE5NGY1NTg5MTFiMDhkZTI3OGJhYzY0YmRiNDcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA3YzIwZAotLS0gL2Rldi9udWxsCisrKyBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vYTgvYjg0ZTQwYzMyMWVlN2JjODg3YTgxN2UwMjEwODk2Mjk3NTE5NGY1NTg5MTFiMDhkZTI3OGJhYzY0YmRiNDcKQEAgLTAsMCArMSwyMTEgQEAKKwQISSICUCk8ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CisgICAgPGgxIGlkPSJpbnRyb2R1Y3Rpb24iPkFubm91bmNpbmcgQXBhY2hlJm5ic3A7V2lja2V0Jm5ic3A7ODogV3JpdGUgTGVzcywgQWNoaWV2ZSBNb3JlPC9oMT4KKyAgICA8ZGl2PgorICAgICAgPGltZyBzcmM9Ii9pbWcvbG9nby5zdmciIGFsdD0iQXBhY2hlIFdpY2tldCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIC8+CisgICAgPC9kaXY+CisgICAgPHA+CisgICAgICBUaGUgQXBhY2hlIFdpY2tldCBwcm9qZWN0IGFubm91bmNlcyB0aGUgOXRoIG1ham9yIHJlbGVhc2Ugb2YgdGhlIG9wZW4gc291cmNlIEphdmEgd2ViIGZyYW1ld29yayBzZXJ2aWNpbmcgd2Vic2l0ZXMgYW5kIGFwcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGdsb2JlIHNpbmNlIDIwMDQuIAorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIEJ1aWx0IG9uIHRvcCBvZiBKYXZhIDExLCB0aGlzIHZlcnNpb24gb2YgV2lja2V0IGJyaW5ncyB3ZWIgZGV2ZWxvcG1lbnQgaW50byB0aGUgbW9kZXJuIEphdmEgd29ybGQsIG9mZmVyaW5nIGEgZnVuZGFtZW50YWwgdG9vbCB0byBrZWVwIHlvdSBjb2RlIHVwIHRvIGRhdGUgd2l0aCBKYXZhIGV2b2x1dGlvbi4KKyAgICA8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QiPgorICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgorICAgIDxoMz5CcmluZyB0aGUgd2ViIGludG8gdGhlIG1vZGVybiBKYXZhIGVyYTwvaDM+CisgICAgPHA+CisgICAgIFRoZSByZWxlYXNlIG9mIEphdmEgOSBoYXMgYmVlbiBhIHR1cm5pbmcgcG9pbnQgaW4gSmF2YSBoaXN0b3J5IHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gZm9yIHRoZSBtb2Rlcm4gSmF2YSBlcmEuIEhvd2V2ZXIsIHRoZSBtYWduaXR1ZGUgb2YgdGhpcyBjaGFuZ2UgaGFzIGRpc2NvdXJhZ2UgbWFueSBkZXZlbG9wZXJzIGZyb20gbGVhdmluZyB0aGUgc2FmZSBoYXJib3IgcmFwcHJlc2VudGVkIGJ5IEphdmEgOC4gV2l0aCBXaWNrZXQgOSB3ZSBmaW5hbGx5IGhhdmUgYSBmdW5kYW1lbnRhbCB0b29sIHRvIG1vdmUgb24gYW5kIGJyaW5nIG91ciB3ZWIgYXBwbGljYXRpb24gaW50byB0aGUgbmV3IEphdmEgd29ybGQuICAKKyAgICA8L3A+CisgICAgPHA+CisgICAgICBXaXRoIHRoaXMgdmVyc2lvbiBXaWNrZXQgaGFzIGJlZW4gY29tcGxldGVkIHJldmlzaXRlZCBhbmQgaW1wcm92ZWQgdG8gZW1icmFjZSBuZXcgdGVjaG5vbG9naWVzIGxpa2UgSmF2YSBtb2R1bGFyaXphdGlvbiBhbmQgbmV3IGxpYnJhcnkgbGlrZSBKVW5pdCA1LgorICAgIDwvcD4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5TdGF5IHVwIHRvIGRhdGUgd2l0aCBKYXZhIHJlbGVhc2UgY3ljbGU8L2gzPgorICAgIDxwPgorICAgICAgV2l0aCBKYXZhIHJlbGVhc2luZyBhdCBhIGZhc3RlciBwaGFzZSBpdCdzIGltcG9ydGFudCB0byBrZWVwIGEgbGlicmFyeSB1cCB0byBkYXRlIHdpdGggdGhlIGxhc3Rlc3QgY2hhbmdlcyBpbnRyb2R1Y2VkIGluIHRoZSBwbGF0Zm9ybSBhbmQgZW5zdXJlIGl0IHdvcmtzIHdpdGggdGhlIGxhdGVzdCBKYXZhIHJlbGVhc2UuIFdpY2tldCBkb2VzIGFsbCBvZiB0aGlzIGJ5IHRha2luZyBwYXJ0IHRvIHRoZSA8YSBocmVmPSJodHRwczovL3dpa2kub3Blbmpkay5qYXZhLm5ldC9kaXNwbGF5L3F1YWxpdHkvUXVhbGl0eStPdXRyZWFjaCIgdGFyZ2V0PSJfYmxhbmsiPk9wZW5KREsgUXVhbGl0eSBPdXRyZWFjaDwvYT4sIGFuIGluaXRpYXRpdmUgYWltZWQgdG8gdGVzdCBwb3B1bGFyIE9wZW4gU291cmNlIHByb2plY3RzIHdpdGggYm90aCB0aGUgbGF0ZXN0IE9wZW5KREsgcmVsZWFzZSBhbmQgdGhlIEVhcmx5IEFjY2VzcyByZWxlYXNlLgorICAgIDwvcD4KKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPiBCZSByZWFkeSBmb3IgdGhlIG5leHQgSmF2YSBFbnRlcnByaXNlPC9oMz4KKyAgICA8cD4KKyAgICAgU2hvcnRseSBhZnRlciBKYXZhIDkgd2FzIHJlbGVhc2VkLCBPcmFjbGUgc3VibWl0dGVkIEphdmEgRUUgdG8gdGhlIEVjbGlwc2UgRm91bmRhdGlvbi4gQXMgc2lkZSBlZmZlY3Qgb2YgdGhpcyBvd25lciBjaGFuZ2UsIHRoZSBwYWNrYWdlIG5hbWUgJ2phdmF4JyBoYWQgdG8gYmUgbWlncmF0ZSB0byAnamFrYXJ0YScuIFdpY2tldCBoaXN0b3JpY2FsbHkgcHJvbW90ZWQgZGVjdXBsaW5nIGJldHdlZW4gSmF2YSBFRSBBUElzIGFuZCBhcHBsaWNhdGlvbiBjb2RlLCBoZW5jZSBtYWtpbmcgbXVjaCBtb3JlIGVhc2llciB0aGUgdHJhbnNpdGlvbiB0byB0aGUgZnV0dXJlIEphdmEgRW50ZXJwcmlzZSB2ZXJzaW9ucy4gCisgICAgPC9wPgorICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CisgICAgPGgzPlByb3RlY3QgeW91ciB3ZWIgYXBwcyB3aXRoIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IChDU1ApPC9oMz4KKyAgICA8cD4KKyAgICAgQXMgdGhlIG51bWJlciBvZiBzZWN1cml0eSB0aHJlYXRzIGdyb3dzLCBpdCdzIGNydWNpYWwgZm9yIHdlYiBhcHBsaWNhdGlvbnMgdG8gYWRvcHQgdGhlIGxhdGVzdCBzZWN1cml0eSBzdGFuZGFyZHMgYW5kIGNvdW50ZXJtZWFzdXJlcy4gQ1NQIGlzIGEgbW9kZXJuIHN0YW5kYXJkIHRoYXQgYWxsb3dzIGFwcGxpY2F0aW9ucyB0byBkZWNsYXJlIGFwcHJvdmVkIG9yaWdpbnMgb2YgY29udGVudCAoc3VjaCBhcyBKYXZhc2NyaXB0LCBDU1MsIGltYWdlcywgZXRjLi4uKSBmb3IgdGhlIGJyb3dzZXIgdG8gbG9hZC4gQ29uc3RydWN0aW5nIGEgc2FmZSBhbmQgYXQgdGhlIHNhbWUgdGltZSBjb21wbGV0ZSBDU1AgY2FuIGJlIGNoYWxsZW5naW5nLiAKKyAgICAgWW91IGVpdGhlciByaXNrIGxlYXZpbmcgaG9sZXMgaW4gdGhlIGRlZmVuc2Ugb2YgeW91ciBhcHBsaWNhdGlvbiBvciB5b3UgYnJlYWsgY2VydGFpbiBmdW5jdGlvbmFsaXR5LiBQcm90ZWN0aW5nIGFnYWluc3QgdW53YW50ZWQgaW5saW5lIHNjcmlwdHMgaXMgdGhlIG1vc3QgaW1wb3J0YW50IHRhcmdldCB0byBhdHRhaW4uIEluIENTUCB0aGlzIGlzIGNhbGxlZCAndW5zYWZlLWlubGluZScgYW5kIGl0J3MgdGhlIG1vc3QgY29tbW9uIGNhdXNlIG9mIGNyb3NzLXNpdGUgc2NyaXB0aW5nIHZ1bG5lcmFiaWxpdGllcy4KKyAgICA8L3A+CisgICAgPHA+CisgICAgIFdpY2tldCA5IGNvbWVzIHdpdGggZnVsbCBzdXBwb3J0IGZvciBDU1AgYW5kIGRvZXMgbm90IG5lZWQgYW55IHVuc2FmZSBkaXJlY3RpdmVzLiBXaWNrZXQgd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCBhIG5vbmNlIHRvIGV2ZXJ5IGhlYWRlciBjb250cmlidXRpb24gYW5kIHdoaXRlbGlzdCB0aGlzIG5vbmNlLiBUaGlzIGFsbG93cyBmb3IgZmxleGlibGUgbG9hZGluZyBvZiByZXNvdXJjZXMgd2l0aG91dCB0aGUgbmVlZCBvZiBhIGNvbXBsZXggQ1NQLiBPZiBjb3Vyc2UgaXQgaXMgcG9zc2libGUgdG8gbW9kaWZ5IGFuZCBjdXN0b21pemUgdGhlIENTUCwgYWRkIGFkZGl0aW9uYWwgZGlyZWN0aXZlcyBvciBkaXNhYmxlIGl0IGVudGlyZWx5LiBMb29rdXAgb3VyICZsdDthIGhyZWY9Imh0dHA6Ly93aWNrZXQuYXBhY2hlLm9yZy9sZWFybi8jZ3VpZGUiIHRhcmdldD0iX2JsYW5rIiImZ3Q7ZG9jdW1lbnRhdGlvbiZsdDsvYSZndDsgZm9yIG1vcmUgaW5mb3JtYXRpb24uICAgICAKKyAgICA8L3A+CisgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+Tm8gUmV3cml0ZSBOZWNlc3Nhcnk8L2gzPgorICAgIDxwPgorICAgICAgVGhlIFdpY2tldCB0ZWFtIGhhcyBiZWVuIHZlcnkgY2FyZWZ1bCBvZiBhZG9wdGluZyBKYXZhIDggdGVjaG5vbG9naWVzIGFuZCBhcyBzdWNoIHlvdSBkb27igJl0IGhhdmUgdG8gcmV3cml0ZSB5b3VyIHdob2xlIGFwcGxpY2F0aW9uLCB3aGlsc3Qgc3RpbGwgcmVhcGluZyBhbGwgdGhlIGJlbmVmaXRzIG9mIEphdmEgOC4KKyAgICA8L3A+CisgICAgPHA+CisgICAgICBBcyB0aGlzIGlzIGEgbmV3IG1ham9yIHZlcnNpb24gd2UgaGF2ZSwgaW4gYWNjb3JkYW5jZSB3aXRoIHNlbWFudGljIHZlcnNpb25pbmcsIGNsZWFuZWQgdXAgbWFueSBBUElzIGFuZCB5b3Ugd2lsbCBnZXQgY29tcGlsZSBlcnJvcnMgd2hlbiB5b3UgbWlncmF0ZSBmcm9tIHByZXZpb3VzIFdpY2tldCB2ZXJzaW9ucy4KKyAgICA8L3A+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5NaWdyYXRpbmcgdG8gV2lja2V0IDk8L2gzPgorICAgIDxwPgorICAgICAgV2hlbiB5b3UgbWlncmF0ZSBmcm9tIGEgcHJldmlvdXMgV2lja2V0IHZlcnNpb24gdG8gV2lja2V0IDksIGEgZnVsbCBsaXN0IG9mIGNoYW5nZXMgYW5kIG1pZ3JhdGlvbnMgaXMgYXZhaWxhYmxlIGF0IHRoZSBmb2xsb3dpbmcgcGFnZToKKyAgICA8L3A+CisgICAgPHA+CisgICAgICA8YSBocmVmPSJodHRwczovL3MuYXBhY2hlLm9yZy93aWNrZXQ5bWlncmF0ZSI+aHR0cHM6Ly9zLmFwYWNoZS5vcmcvd2lja2V0OW1pZ3JhdGU8L2E+CisgICAgPC9wPgorICAgIDxwPgorICAgICAgUGxlYXNlIGNvbnN1bHQgdGhpcyBtaWdyYXRpb24gZ3VpZGUgd2hlbiB5b3UgYXJlIG1vdmluZyB0b3dhcmRzIFdpY2tldCA5LgorICAgIDwvcD4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KKyAgICA8aDI+R2V0dGluZyBTdGFydGVkIHdpdGggV2lja2V0IDk8L2gyPgorICAgIDxwPgorICAgICAgSXQgaXMgdmVyeSBlYXN5IHRvIGdldCBzdGFydGVkIHdpdGggV2lja2V0OiB1c2Ugb3VyIDxhIGhyZWY9Ii9zdGFydC9xdWlja3N0YXJ0Lmh0bWwiPnF1aWNrLXN0YXJ0IHdpemFyZDwvYT4gb3IgCisgICAgICB1c2Ugb25lIG9mIHRoZSBvcHRpb25zIGJlbG93LgorICAgIDwvcD4KKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPkRvd25sb2FkIHVzaW5nIEFwYWNoZSBNYXZlbjwvaDM+CisgICAgPHA+CisgICAgICBXaXRoIEFwYWNoZSBNYXZlbiB1cGRhdGUgeW91ciBkZXBlbmRlbmN5IHRvIChhbmQgZG9uJ3QgZm9yZ2V0IHRvCisgICAgICB1cGRhdGUgYW55IG90aGVyIGRlcGVuZGVuY2llcyBvbiBXaWNrZXQgcHJvamVjdHMgdG8gdGhlIHNhbWUgdmVyc2lvbik6CisgICAgPC9wPgorCis8ZmlndXJlIGNsYXNzPSJoaWdobGlnaHQiPjxwcmU+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLXhtbCIgZGF0YS1sYW5nPSJ4bWwiPjxzcGFuIGNsYXNzPSJudCI+Jmx0O2RlcGVuZGVuY3kmZ3Q7PC9zcGFuPgorICAgIDxzcGFuIGNsYXNzPSJudCI+Jmx0O2dyb3VwSWQmZ3Q7PC9zcGFuPm9yZy5hcGFjaGUud2lja2V0PHNwYW4gY2xhc3M9Im50Ij4mbHQ7L2dyb3VwSWQmZ3Q7PC9zcGFuPgorICAgIDxzcGFuIGNsYXNzPSJudCI+Jmx0O2FydGlmYWN0SWQmZ3Q7PC9zcGFuPndpY2tldC1jb3JlPHNwYW4gY2xhc3M9Im50Ij4mbHQ7L2FydGlmYWN0SWQmZ3Q7PC9zcGFuPgorICAgIDxzcGFuIGNsYXNzPSJudCI+Jmx0O3ZlcnNpb24mZ3Q7PC9zcGFuPjkuMC4wLU01PHNwYW4gY2xhc3M9Im50Ij4mbHQ7L3ZlcnNpb24mZ3Q7PC9zcGFuPgorPHNwYW4gY2xhc3M9Im50Ij4mbHQ7L2RlcGVuZGVuY3kmZ3Q7PC9zcGFuPjwvY29kZT48L3ByZT48L2ZpZ3VyZT4KKworICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+RG93bmxvYWQgc291cmNlcy9iaW5hcmllcyBtYW51YWxseTwvaDM+CisgICAgPHA+CisgICAgICBPciBkb3dubG9hZCBhbmQgYnVpbGQgdGhlIGRpc3RyaWJ1dGlvbiB5b3Vyc2VsZiwgb3IgdXNlIG91cgorICAgICAgY29udmVuaWVuY2UgYmluYXJ5IHBhY2thZ2UKKyAgICA8L3A+CisgICAgPHVsPgorICAgICAgPGxpPlNvdXJjZTogPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2R5bi9jbG9zZXIuY2dpL3dpY2tldC85LjAuMC1NNSI+OS4wLjAtTTUgc291cmNlIGRvd25sb2FkPC9hPjwvbGk+CisgICAgICA8bGk+QmluYXJ5OiA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZHluL2Nsb3Nlci5jZ2kvd2lja2V0LzkuMC4wLU01L2JpbmFyaWVzIj45LjAuMC1NNSBiaW5hcnkgZG93bmxvYWQ8L2E+PC9saT4KKyAgICA8L3VsPgorICA8L2Rpdj4KKzwvZGl2PgorCis8aHIgLz4KKworPGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgorICAgIDxoMSBpZD0iaW50cm9kdWN0aW9uIj5JbnRyb2R1Y2luZyBBcGFjaGUmbmJzcDtXaWNrZXQ8L2gxPgorICAgIDxwPkludmVudGVkIGluIDIwMDQsIFdpY2tldCBpcyBvbmUgb2YgdGhlIGZldyBzdXJ2aXZvcnMgb2YgdGhlIEphdmEKKyAgICBzZXJ2ZXJzaWRlIHdlYiBmcmFtZXdvcmsgd2FycyBvZiB0aGUgbWlkIDIwMDAncy4gV2lja2V0IGlzIGFuIG9wZW4KKyAgICBzb3VyY2UsIGNvbXBvbmVudCBvcmllbnRlZCwgc2VydmVyc2lkZSwgSmF2YSB3ZWIgYXBwbGljYXRpb24gZnJhbWV3b3JrLgorICAgIFdpdGggYSBoaXN0b3J5IG9mIG92ZXIgYSBkZWNhZGUsIGl0IGlzIHN0aWxsIGdvaW5nIHN0cm9uZyBhbmQgaGFzIGEKKyAgICBzb2xpZCBmdXR1cmUgYWhlYWQuIExlYXJuIHdoeSB5b3Ugc2hvdWxkIGNvbnNpZGVyIFdpY2tldCBmb3IgeW91ciBuZXh0CisgICAgd2ViIGFwcGxpY2F0aW9uLjwvcD4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aW1nIHNyYz0iL2ltZy9qYXZhLXdpY2tldC1odG1sNS5wbmciIGNsYXNzPSJsLWZ1bGwiIC8+CisgICAgICAgIDxoMz5KdXN0IEphdmEgJmFtcDsgSFRNTDwvaDM+CisgICAgICAgIDxwPkxldmVyYWdlIHdoYXQgeW91IGtub3cgYWJvdXQgSmF2YSBvciB5b3VyIGZhdm91cml0ZSBIVE1MIAorICAgICAgICBlZGl0b3IgdG8gd3JpdGUgV2lja2V0IGFwcGxpY2F0aW9ucy4gV2l0aCBwdXJlIEphdmEgY29kZSBhbmQgSFRNTCAKKyAgICAgICAgbWFya3VwIFdpY2tldCBpcyB0aGUgZ28tdG8gd2ViIGZyYW1ld29yayBmb3IgcHVyaXN0cy48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aW1nIHNyYz0iL2ltZy93aWNrZXQtc2FmZS5wbmciIGNsYXNzPSJsLWZ1bGwiIC8+CisgICAgICAgIDxoMz5TZWN1cmUgYnkgRGVmYXVsdDwvaDM+CisgICAgICAgIDxwPlVSTHMgZG8gbm90IGV4cG9zZSBzZW5zaXRpdmUgaW5mb3JtYXRpb24gYW5kIGFsbCBjb21wb25lbnQgcGF0aHMgYXJlCisgICAgICAgIHNlc3Npb24tcmVsYXRpdmUuIFdpY2tldCBrZWVwcyB5b3VyIG1vZGVsIHByaXZhdGUgZXhjZXB0IHRob3NlIHBhcnRzCisgICAgICAgIHlvdSBleHBsaWNpdGx5IGV4cG9zZS48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aW1nIHNyYz0iL2ltZy93aWNrZXQtY29tcG9uZW50cy5wbmciIGNsYXNzPSJsLWZ1bGwiIC8+CisgICAgICAgIDxoMz5BSkFYIENvbXBvbmVudHM8L2gzPgorICAgICAgICA8cD5Xcml0ZSBBamF4IGFwcGxpY2F0aW9ucyB3aXRob3V0IGhhdmluZyB0byB3cml0ZSBhIHNpbmdsZSBsaW5lIAorICAgICAgICBvZiBKYXZhU2NyaXB0IGNvZGUuIFdpY2tldCdzIEFqYXggZnVuY3Rpb25hbGl0eSBtYWtlcyBpdCB0cml2aWFsIAorICAgICAgICB0byB1cGRhdGUgc2VsZWN0ZWQgcGFydHMgb2YgYSBVSSwgYW5kIGNvbWVzIHdpdGggYSBncmVhdCBzZWxlY3Rpb24gCisgICAgICAgIG9mIGJhc2ljIEFqYXggY29tcG9uZW50cy48L3A+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5PcGVuIFNvdXJjZSB3aXRoIEFwYWNoZSBMaWNlbnNlPC9oMz4KKyAgICAgICAgPHA+U2luY2UgaXRzIGluY2VwdGlvbiBpbiAyMDA0IFdpY2tldCBoYXMgYmVlbiBhbiBvcGVuIHNvdXJjZQorICAgICAgICBwcm9qZWN0IGFuZCByZW1haW5zIGF2YWlsYWJsZSB1bmRlciBvbmUgb2YgdGhlIG1vc3QgcGVybWlzc2l2ZQorICAgICAgICBsaWNlbnNlczogdGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5NYWludGFpbmFibGUgY29kZTwvaDM+CisgICAgICAgIDxwPlBhZ2VzIGFuZCBDb21wb25lbnRzIGluIFdpY2tldCBhcmUgcmVhbCBKYXZhIG9iamVjdHMgdGhhdCBzdXBwb3J0CisgICAgICAgIGVuY2Fwc3VsYXRpb24sIGluaGVyaXRhbmNlIGFuZCBldmVudHMuIENyZWF0ZSBoaWdoIGxldmVsIGNvbXBvbmVudHMKKyAgICAgICAgd2l0aCBlYXNlIGFuZCBidW5kbGUgaXRzIHN0eWxlc2hlZXRzLCBKYXZhU2NyaXB0IGFuZCBvdGhlciByZXNvdXJjZXMKKyAgICAgICAgaW50byBvbmUgcmV1c2FibGUgcGFja2FnZS48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+SW50ZXJuYXRpb25hbGl6ZWQgdG8gdGFrZSBvbiB0aGUgd29ybGQ8L2gzPgorICAgICAgICA8cD5XaXRoIHN1cHBvcnQgb2Ygb3ZlciAyNSBsYW5ndWFnZXMgb3V0LW9mLXRoZS1ib3gsIFdpY2tldCBsZXQncyAKKyAgICAgICAgeW91IGdldCBzdGFydGVkIGluIHlvdXIgb3duIGxhbmd1YWdlLCBvciBhIHNlY29uZCBsYW5ndWFnZSB3aXRoIG5vIAorICAgICAgICBlZmZvcnQuIFlvdSBjYW4gcHJvdmlkZSBhbHRlcm5hdGl2ZSBsYW5ndWFnZXMgb24gdGhlIGFwcGxpY2F0aW9uLCAKKyAgICAgICAgcGFnZSwgb3IgZXZlbiBjb21wb25lbnQgbGV2ZWwuPC9wPgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+TXVsdGktdGFiIGFuZCB3aW5kb3cgc3VwcG9ydDwvaDM+CisgICAgICAgIDxwPk5vIG1vcmUgcGFpbiB3aGlsZSBrZWVwaW5nIHRhcHMgb24gbXVsdGlwbGUgdGFicyBhbmQgd2luZG93cy4gCisgICAgICAgIFdpY2tldCdzIGF1dG9tYXRpYyBzdGF0ZSBzdG9yYWdlIGVuc3VyZXMgdGhhdCB5b3VyIHVzZXJzIGNhbiBvcGVuIAorICAgICAgICBwYWdlcyBpbiBuZXcgdGFicyBhbmQgd2luZG93cyB3aXRob3V0IGNhdXNpbmcgcHJvYmxlbXMuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImwtdHdvLXRoaXJkIj4KKyAgICAgICAgPGgzPldvcmsgd2l0aCBKYXZhU2NyaXB0IGFuZCBDU1M8L2gzPgorICAgICAgICA8cD5HbG9iYWwgSmF2YVNjcmlwdCBsaWJyYXJpZXMgYW5kIENTUyBzdHlsaW5nIG1peCBwcm9wZXJseSB3aXRoIAorICAgICAgICBjb21wb25lbnQgbG9jYWwgSmF2YVNjcmlwdCBhbmQgQ1NTIHJlc291cmNlcy4gWW91IGNhbiB1c2UgY3VzdG9tIAorICAgICAgICBjb21wb25lbnQgbGlicmFyaWVzIHRoYXQgc2hpcCB3aXRoIGRlZmF1bHQgSmF2YVNjcmlwdCBiZWhhdmlvdXIgYW5kIAorICAgICAgICBDU1Mgc3R5bGluZywgd2l0aG91dCBoYXZpbmcgdG8gZG8gYW55dGhpbmcgeW91cnNlbGYuIENyZWF0aW5nIHN1Y2ggCisgICAgICAgIHNlbGYtY29udGFpbmVkIGNvbXBvbmVudCBsaWJyYXJpZXMgaXMgYXMgZWFzeSBhcyBjcmVhdGluZyBhIEpBUiAKKyAgICAgICAgZmlsZS48L3A+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5UZXN0IHlvdXIgcGFnZXMgYW5kIGNvbXBvbmVudHM8L2gzPgorICAgICAgICA8cD5XaXRoIFdpY2tldFRlc3RlciB5b3UgY2FuIGFjaGlldmUgdGVzdGluZyBjb3ZlcmFnZSB5b3VyIFFBIAorICAgICAgICBkZXBhcnRtZW50IGNhbiBvbmx5IGRyZWFtIG9mLiBUZXN0IHlvdXIgcGFnZXMgd2l0aG91dCBoYXZpbmcgdG8gcnVuIAorICAgICAgICBpbnNpZGUgYSBicm93c2VyLCBvciBzdGFydCBhIGNvbnRhaW5lci4gVGVzdCB5b3VyIGNvbXBvbmVudHMgZGlyZWN0bHksIAorICAgICAgICBjaGVjayB0aGVpciByZW5kZXJlZCBtYXJrdXAgdGFncywgYXR0cmlidXRlcyBhbmQgY29udGVudHMgd2l0aCBlYXNlLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5JbmplY3Rpb24gc3VwcG9ydDwvaDM+CisgICAgICAgIDxwPkluamVjdCB5b3VyIHNlcnZpY2VzIGludG8geW91ciBwYWdlcyBhbmQgY29tcG9uZW50cyB3aXRoIHRoZSAKKyAgICAgICAgdGVjaG5vbG9neSBvZiB5b3VyIGNob29zaW5nOiBXaWNrZXQgcHJvdmlkZXMgaW50ZWdyYXRpb24gd2l0aCBDREkgCisgICAgICAgIChKU1ItMzA1KSwgU3ByaW5nIGFuZCBHdWljZS48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+SmF2YUVFIGludGVncmF0aW9uPC9oMz4KKyAgICAgICAgPHA+SWYgeW91IGFyZSB1c2luZyB0aGUgV2ViIHByb2ZpbGUgb2YgSmF2YUVFIDYgb3IgbmV3ZXIsIHlvdSBjYW4gCisgICAgICAgIGxldmVyYWdlIEpQQSwgRUpCcywgQmVhbiBWYWxpZGF0aW9uIGFuZCBDREkgd2l0aCBXaWNrZXQncyBpbnRlZ3JhdGlvbnMgCisgICAgICAgIGZvciB0aGVzZSBzcGVjaWZpY2F0aW9ucy48L3A+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPC9kaXY+Cis8aHIgLz4KKworBjoGRVQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4IGIvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi9hOC9jMjg2YmIyY2MyODdlNTkwNjkxYjQ1MTg3MDg3MDFhY2I2OGIxMzAxMmYwYjE3OGNlODVlYzM0OGVmMTY3ZgpzaW1pbGFyaXR5IGluZGV4IDkxJQpjb3B5IGZyb20gLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOApjb3B5IHRvIC5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vYTgvYzI4NmJiMmNjMjg3ZTU5MDY5MWI0NTE4NzA4NzAxYWNiNjhiMTMwMTJmMGIxNzhjZTg1ZWMzNDhlZjE2N2YKaW5kZXggZjYzMWU0Yi4uOTZjZGMyYSAxMDA2NDQKLS0tIGEvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOAorKysgYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duL2E4L2MyODZiYjJjYzI4N2U1OTA2OTFiNDUxODcwODcwMWFjYjY4YjEzMDEyZjBiMTc4Y2U4NWVjMzQ4ZWYxNjdmCkBAIC0xLDIzICsxLDI1IEBACi0ECEkiAnI9PGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgorBAhJIgKIPjxkaXYgY2xhc3M9ImwtZnVsbCBsLWZpcnN0IHByZWFtYmxlIj4KICAgICA8aDEgaWQ9ImludHJvZHVjdGlvbiI+QW5ub3VuY2luZyBBcGFjaGUmbmJzcDtXaWNrZXQmbmJzcDs4OiBXcml0ZSBMZXNzLCBBY2hpZXZlIE1vcmU8L2gxPgorICAgIDxkaXY+CisgICAgICA8aW1nIHNyYz0iL2ltZy9sb2dvLnN2ZyIgYWx0PSJBcGFjaGUgV2lja2V0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgLz4KKyAgICA8L2Rpdj4KICAgICA8cD4KLSAgICAgIFRoZSBBcGFjaGUgV2lja2V0IHByb2plY3QgYW5ub3VuY2VzIHRoZSA4dGggbWFqb3IgcmVsZWFzZSBvZiB0aGUgb3BlbiBzb3VyY2UgSmF2YSB3ZWIgZnJhbWV3b3JrIHNlcnZpY2luZyB3ZWJzaXRlcyBhbmQgYXBwbGljYXRpb25zIGFjcm9zcyB0aGUgZ2xvYmUgZm9yIG92ZXIgYSBkZWNhZGUuIFdpdGggdGhpcyByZWxlYXNlIFdpY2tldCBlbWJyYWNlcyBKYXZhIDggaWRpb21zIGZ1bGx5LCBhbGxvd2luZyB0aGUgdXNlIG9mIGxhbWJkYSBleHByZXNzaW9ucyBpbiBhbGwgdGhlIHJpZ2h0IHBsYWNlcy4gV2l0aCBXaWNrZXQgOCB5b3UgY2FuIHdyaXRlIGZld2VyLCBmYXN0ZXIgYW5kIG1vcmUgbWFpbnRhaW5hYmxlIGNvZGUuCisgICAgICBUaGUgQXBhY2hlIFdpY2tldCBwcm9qZWN0IGFubm91bmNlcyB0aGUgOXRoIG1ham9yIHJlbGVhc2Ugb2YgdGhlIG9wZW4gc291cmNlIEphdmEgd2ViIGZyYW1ld29yayBzZXJ2aWNpbmcgd2Vic2l0ZXMgYW5kIGFwcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGdsb2JlIHNpbmNlIDIwMDQuIEJ1aWx0IG9uIHRvcCBvZiBKYXZhIDExLCB0aGlzIHZlcnNpb24gb2YgV2lja2V0IGJyaW5ncyB3ZWIgZGV2ZWxvcG1lbnQgaW50byB0aGUgbW9kZXJuIEphdmEgd29ybGQsIG9mZmVyaW5nIGEgZnVuZGFtZW50YWwgdG9vbCB0byBrZWVwIHlvdSBjb2RlIHVwIHRvIGRhdGUgd2l0aCBKYXZhIGV2b2x1dGlvbi4KICAgICA8L3A+CiA8L2Rpdj4KIDxkaXYgY2xhc3M9ImwtZmlyc3QiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgotICAgIDxoMz5BIENhcmVmdWwgQXBwbGljYXRpb24gb2YgSmF2YSA4PC9oMz4KLQorICAgIDxoMz5CcmluZyB0aGUgd2ViIGludG8gdGhlIG1vZGVybiBKYXZhIGVyYTwvaDM+CiAgICAgPHA+Ci0gICAgICBXaGlsZSBwcmV2aW91cyB2ZXJzaW9ucyBvZiBXaWNrZXQgd29yayB3ZWxsIHdpdGggSmF2YSA4IGFuZCBiZXlvbmQsIHRoZSBXaWNrZXQgQVBJIHdhcyBub3Qgb3B0aW1pemVkIHRvIG1ha2UgZnVsbCB1c2Ugb2YgSmF2YSA4IGlkaW9tcy4gQWZ0ZXIgY2FyZWZ1bCBjb25zaWRlcmF0aW9uIGFuZCB0cnlpbmcgbWFueSBwYXRocyB0byBhZG9wdCBuZXcgd2F5cyBvZiBjb21iaW5pbmcgSmF2YSA4IGFuZCBXaWNrZXQsIHdlIGZpbmFsbHkgc2V0dGxlZCBvbiB0aGUgY3VycmVudCBBUEkuCisgICAgIFRoZSByZWxlYXNlIG9mIEphdmEgOSBoYXMgYmVlbiBhIHR1cm5pbmcgcG9pbnQgaW4gSmF2YSBoaXN0b3J5IHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gZm9yIHRoZSBtb2Rlcm4gSmF2YSBlcmEuIEhvd2V2ZXIsIHRoZSBtYWduaXR1ZGUgb2YgdGhpcyBjaGFuZ2UgaGFzIGRpc2NvdXJhZ2UgbWFueSBkZXZlbG9wZXJzIGZyb20gbGVhdmluZyB0aGUgc2FmZSBoYXJib3IgcmFwcHJlc2VudGVkIGJ5IEphdmEgOC4gV2l0aCBXaWNrZXQgOSB3ZSBmaW5hbGx5IGhhdmUgYSBmdW5kYW1lbnRhbCB0b29sIHRvIG1vdmUgb24gYW5kIGJyaW5nIG91ciB3ZWIgYXBwbGljYXRpb24gaW50byB0aGUgbmV3IEphdmEgd29ybGQuICAKICAgICA8L3A+CiAgICAgPHA+Ci0gICAgICBKYXZhIDjigJlzIG5ldyBpZGlvbXMgYW5kIHR5cGVzIGhhdmUgYmVlbiBhcHBsaWVkIHRocm91Z2hvdXQgV2lja2V04oCZcyBBUEkuIExlYXJuIG1vcmUgYWJvdXQgdGhlIGRldGFpbHMgYmVsb3cuCisgICAgICBXaXRoIHRoaXMgdmVyc2lvbiBXaWNrZXQgaGFzIGJlZW4gY29tcGxldGVkIHJldmlzaXRlZCBhbmQgaW1wcm92ZWQgdG8gZW1icmFjZSBuZXcgdGVjaG5vbG9naWVzIGxpa2UgSmF2YSBtb2R1bGFyaXphdGlvbiBhbmQgbmV3IGxpYnJhcnkgbGlrZSBKVW5pdCA1LgogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICA8aDM+SmF2YSA4KyBSZXF1aXJlZDwvaDM+CiAgICAgPHA+CkBAIC00MCw3ICs0Miw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtdHdvLXRoaXJkIj4KICAgICA8aDM+TGFtYmRhcyBpbiBBbGwgVGhlIFJpZ2h0IFBsYWNlczwvaDM+CiAgICAgPHA+CkBAIC01Miw3ICs1NCw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgzPk9wdGlvbmFsIGlzIFNvbWV0aW1lcyBSZXF1aXJlZDwvaDM+CiAgIDwvZGl2PgpAQCAtOTEsNyArOTMsNyBAQAogICA8L2Rpdj4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDM+TW9kZWxzIGFzIEZ1bmN0aW9uYWwgSW50ZXJmYWNlPC9oMz4KICAgICA8cD4KQEAgLTExOCw3ICsxMjAsNyBAQAogICA8L2Rpdj4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KICAgICA8aDM+Tm8gUmV3cml0ZSBOZWNlc3Nhcnk8L2gzPgogICAgIDxwPgpAQCAtMTQxLDcgKzE0Myw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgyPkdldHRpbmcgU3RhcnRlZCB3aXRoIFdpY2tldCA4PC9oMj4KICAgICA8cD4KQEAgLTE4OCw3ICsxOTAsNyBAQAogICAgIHdlYiBhcHBsaWNhdGlvbi48L3A+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aW1nIHNyYz0iL2ltZy9qYXZhLXdpY2tldC1odG1sNS5wbmciIGNsYXNzPSJsLWZ1bGwiIC8+CiAgICAgICAgIDxoMz5KdXN0IEphdmEgJmFtcDsgSFRNTDwvaDM+CkBAIC0yMTIsNyArMjE0LDcgQEAKICAgICAgICAgb2YgYmFzaWMgQWpheCBjb21wb25lbnRzLjwvcD4KICAgICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aDM+T3BlbiBTb3VyY2Ugd2l0aCBBcGFjaGUgTGljZW5zZTwvaDM+CiAgICAgICAgIDxwPlNpbmNlIGl0cyBpbmNlcHRpb24gaW4gMjAwNCBXaWNrZXQgaGFzIGJlZW4gYW4gb3BlbiBzb3VyY2UKQEAgLTIzNCw3ICsyMzYsNyBAQAogICAgICAgICBwYWdlLCBvciBldmVuIGNvbXBvbmVudCBsZXZlbC48L3A+CiAgICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGgzPk11bHRpLXRhYiBhbmQgd2luZG93IHN1cHBvcnQ8L2gzPgogICAgICAgICA8cD5ObyBtb3JlIHBhaW4gd2hpbGUga2VlcGluZyB0YXBzIG9uIG11bHRpcGxlIHRhYnMgYW5kIHdpbmRvd3MuIApAQCAtMjUxLDcgKzI1Myw3IEBACiAgICAgICAgIGZpbGUuPC9wPgogICAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxoMz5UZXN0IHlvdXIgcGFnZXMgYW5kIGNvbXBvbmVudHM8L2gzPgogICAgICAgICA8cD5XaXRoIFdpY2tldFRlc3RlciB5b3UgY2FuIGFjaGlldmUgdGVzdGluZyBjb3ZlcmFnZSB5b3VyIFFBIApAQCAtMjc0LDQgKzI3Niw2IEBACiA8L2Rpdj4KIDxkaXYgY2xhc3M9ImwtZmlyc3QiPgogPC9kaXY+Cis8aHIgLz4KKwogBjoGRVQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4IGIvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi9hYS9lMDA3OGFkMjFjODliOTNiOTU1OWZlYzE5YjMwNGIzODQ2MmNhOWJkOWZjMDllMmQ3NTFmMGRjODUyNDQwMwpzaW1pbGFyaXR5IGluZGV4IDkwJQpjb3B5IGZyb20gLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOApjb3B5IHRvIC5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vYWEvZTAwNzhhZDIxYzg5YjkzYjk1NTlmZWMxOWIzMDRiMzg0NjJjYTliZDlmYzA5ZTJkNzUxZjBkYzg1MjQ0MDMKaW5kZXggZjYzMWU0Yi4uODAzYjVhNyAxMDA2NDQKLS0tIGEvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOAorKysgYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duL2FhL2UwMDc4YWQyMWM4OWI5M2I5NTU5ZmVjMTliMzA0YjM4NDYyY2E5YmQ5ZmMwOWUyZDc1MWYwZGM4NTI0NDAzCkBAIC0xLDI1ICsxLDI3IEBACi0ECEkiAnI9PGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgorBAhJIgKxPjxkaXYgY2xhc3M9ImwtZnVsbCBsLWZpcnN0IHByZWFtYmxlIj4KICAgICA8aDEgaWQ9ImludHJvZHVjdGlvbiI+QW5ub3VuY2luZyBBcGFjaGUmbmJzcDtXaWNrZXQmbmJzcDs4OiBXcml0ZSBMZXNzLCBBY2hpZXZlIE1vcmU8L2gxPgorICAgIDxkaXY+CisgICAgICA8aW1nIHNyYz0iL2ltZy9sb2dvLnN2ZyIgYWx0PSJBcGFjaGUgV2lja2V0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgLz4KKyAgICA8L2Rpdj4KICAgICA8cD4KLSAgICAgIFRoZSBBcGFjaGUgV2lja2V0IHByb2plY3QgYW5ub3VuY2VzIHRoZSA4dGggbWFqb3IgcmVsZWFzZSBvZiB0aGUgb3BlbiBzb3VyY2UgSmF2YSB3ZWIgZnJhbWV3b3JrIHNlcnZpY2luZyB3ZWJzaXRlcyBhbmQgYXBwbGljYXRpb25zIGFjcm9zcyB0aGUgZ2xvYmUgZm9yIG92ZXIgYSBkZWNhZGUuIFdpdGggdGhpcyByZWxlYXNlIFdpY2tldCBlbWJyYWNlcyBKYXZhIDggaWRpb21zIGZ1bGx5LCBhbGxvd2luZyB0aGUgdXNlIG9mIGxhbWJkYSBleHByZXNzaW9ucyBpbiBhbGwgdGhlIHJpZ2h0IHBsYWNlcy4gV2l0aCBXaWNrZXQgOCB5b3UgY2FuIHdyaXRlIGZld2VyLCBmYXN0ZXIgYW5kIG1vcmUgbWFpbnRhaW5hYmxlIGNvZGUuCisgICAgICBUaGUgQXBhY2hlIFdpY2tldCBwcm9qZWN0IGFubm91bmNlcyB0aGUgOXRoIG1ham9yIHJlbGVhc2Ugb2YgdGhlIG9wZW4gc291cmNlIEphdmEgd2ViIGZyYW1ld29yayBzZXJ2aWNpbmcgd2Vic2l0ZXMgYW5kIGFwcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGdsb2JlIHNpbmNlIDIwMDQuIEJ1aWx0IG9uIHRvcCBvZiBKYXZhIDExLCB0aGlzIHZlcnNpb24gb2YgV2lja2V0IGJyaW5ncyB3ZWIgZGV2ZWxvcG1lbnQgaW50byB0aGUgbW9kZXJuIEphdmEgd29ybGQsIG9mZmVyaW5nIGEgZnVuZGFtZW50YWwgdG9vbCB0byBrZWVwIHlvdSBjb2RlIHVwIHRvIGRhdGUgd2l0aCBKYXZhIGV2b2x1dGlvbi4KICAgICA8L3A+CiA8L2Rpdj4KIDxkaXYgY2xhc3M9ImwtZmlyc3QiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgotICAgIDxoMz5BIENhcmVmdWwgQXBwbGljYXRpb24gb2YgSmF2YSA4PC9oMz4KLQorICAgIDxoMz5CcmluZyB0aGUgd2ViIGludG8gdGhlIG1vZGVybiBKYXZhIGVyYTwvaDM+CiAgICAgPHA+Ci0gICAgICBXaGlsZSBwcmV2aW91cyB2ZXJzaW9ucyBvZiBXaWNrZXQgd29yayB3ZWxsIHdpdGggSmF2YSA4IGFuZCBiZXlvbmQsIHRoZSBXaWNrZXQgQVBJIHdhcyBub3Qgb3B0aW1pemVkIHRvIG1ha2UgZnVsbCB1c2Ugb2YgSmF2YSA4IGlkaW9tcy4gQWZ0ZXIgY2FyZWZ1bCBjb25zaWRlcmF0aW9uIGFuZCB0cnlpbmcgbWFueSBwYXRocyB0byBhZG9wdCBuZXcgd2F5cyBvZiBjb21iaW5pbmcgSmF2YSA4IGFuZCBXaWNrZXQsIHdlIGZpbmFsbHkgc2V0dGxlZCBvbiB0aGUgY3VycmVudCBBUEkuCisgICAgIFRoZSByZWxlYXNlIG9mIEphdmEgOSBoYXMgYmVlbiBhIHR1cm5pbmcgcG9pbnQgaW4gSmF2YSBoaXN0b3J5IHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gZm9yIHRoZSBtb2Rlcm4gSmF2YSBlcmEuIEhvd2V2ZXIsIHRoZSBtYWduaXR1ZGUgb2YgdGhpcyBjaGFuZ2UgaGFzIGRpc2NvdXJhZ2UgbWFueSBkZXZlbG9wZXJzIGZyb20gbGVhdmluZyB0aGUgc2FmZSBoYXJib3IgcmFwcHJlc2VudGVkIGJ5IEphdmEgOC4gV2l0aCBXaWNrZXQgOSB3ZSBmaW5hbGx5IGhhdmUgYSBmdW5kYW1lbnRhbCB0b29sIHRvIG1vdmUgb24gYW5kIGJyaW5nIG91ciB3ZWIgYXBwbGljYXRpb24gaW50byB0aGUgbmV3IEphdmEgd29ybGQuICAKICAgICA8L3A+CiAgICAgPHA+Ci0gICAgICBKYXZhIDjigJlzIG5ldyBpZGlvbXMgYW5kIHR5cGVzIGhhdmUgYmVlbiBhcHBsaWVkIHRocm91Z2hvdXQgV2lja2V04oCZcyBBUEkuIExlYXJuIG1vcmUgYWJvdXQgdGhlIGRldGFpbHMgYmVsb3cuCisgICAgICBXaXRoIHRoaXMgdmVyc2lvbiBXaWNrZXQgaGFzIGJlZW4gY29tcGxldGVkIHJldmlzaXRlZCBhbmQgaW1wcm92ZWQgdG8gZW1icmFjZSBuZXcgdGVjaG5vbG9naWVzIGxpa2UgSmF2YSBtb2R1bGFyaXphdGlvbiBhbmQgbmV3IGxpYnJhcnkgbGlrZSBKVW5pdCA1LgogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KLSAgICA8aDM+SmF2YSA4KyBSZXF1aXJlZDwvaDM+CisgICAgPGgzPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIEphdmEgcmVsZWFzZSBjeWNsZTwvaDM+CiAgICAgPHA+CiAgICAgICBTdGFydGluZyB3aXRoIFdpY2tldCA4IHRoZSBtaW5pbXVtIHJlcXVpcmVkIHZlcnNpb24gb2YgSmF2YSBpcyBKYXZhIDguIEFsbCBXaWNrZXQgc3VwcGxpZWQgcHJvamVjdHMgaGF2ZSBiZWVuIHVwZ3JhZGVkIHRvIEphdmEgOCBhbmQgV2lja2V0IDgsIGFuZCBzaG9ydGx5IGFsbCBhY3RpdmUgY29tbXVuaXR5IHByb2plY3RzLCBzdWNoIGFzIFdpY2tldCBTdHVmZiwgd2lsbCBmb2xsb3cgc3VpdC4KICAgICA8L3A+CkBAIC0yOCw3ICszMCw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgotICAgIDxoMz5TZXJ2bGV0IDMuMSBSZXF1aXJlZDwvaDM+CisgICAgPGgzPiBCZSByZWFkeSBmb3IgdGhlIG5leHQgSmF2YSBFbnRlcnByaXNlPC9oMz4KICAgICA8cD4KICAgICAgIEFzIG9mIFdpY2tldCA4IHdlIG9ubHkgc3VwcG9ydCB0aGUgSmF2YSBTZXJ2bGV0IEFQSSAzLjEgKG9yIG5ld2VyKS4gVGhpcyBtZWFucyB0aGF0IHRvIHJ1biBhcHBsaWNhdGlvbnMgYnVpbHQgdXNpbmcgV2lja2V0IDggeW91IGhhdmUgdG8gcnVuIHlvdXIgYXBwbGljYXRpb24gaW4gYSBtb2Rlcm4gc2VydmVyIGxpa2UgVG9tY2F0IDgueCwgSmV0dHkgOS4xKyBvciBhIEphdmEgRUUgNyBjb21wYXRpYmxlIHNlcnZlci4KICAgICA8L3A+CkBAIC00MCw3ICs0Miw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtdHdvLXRoaXJkIj4KICAgICA8aDM+TGFtYmRhcyBpbiBBbGwgVGhlIFJpZ2h0IFBsYWNlczwvaDM+CiAgICAgPHA+CkBAIC01Miw3ICs1NCw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgzPk9wdGlvbmFsIGlzIFNvbWV0aW1lcyBSZXF1aXJlZDwvaDM+CiAgIDwvZGl2PgpAQCAtOTEsNyArOTMsNyBAQAogICA8L2Rpdj4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDM+TW9kZWxzIGFzIEZ1bmN0aW9uYWwgSW50ZXJmYWNlPC9oMz4KICAgICA8cD4KQEAgLTExOCw3ICsxMjAsNyBAQAogICA8L2Rpdj4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KICAgICA8aDM+Tm8gUmV3cml0ZSBOZWNlc3Nhcnk8L2gzPgogICAgIDxwPgpAQCAtMTQxLDcgKzE0Myw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgyPkdldHRpbmcgU3RhcnRlZCB3aXRoIFdpY2tldCA4PC9oMj4KICAgICA8cD4KQEAgLTE4OCw3ICsxOTAsNyBAQAogICAgIHdlYiBhcHBsaWNhdGlvbi48L3A+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aW1nIHNyYz0iL2ltZy9qYXZhLXdpY2tldC1odG1sNS5wbmciIGNsYXNzPSJsLWZ1bGwiIC8+CiAgICAgICAgIDxoMz5KdXN0IEphdmEgJmFtcDsgSFRNTDwvaDM+CkBAIC0yMTIsNyArMjE0LDcgQEAKICAgICAgICAgb2YgYmFzaWMgQWpheCBjb21wb25lbnRzLjwvcD4KICAgICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aDM+T3BlbiBTb3VyY2Ugd2l0aCBBcGFjaGUgTGljZW5zZTwvaDM+CiAgICAgICAgIDxwPlNpbmNlIGl0cyBpbmNlcHRpb24gaW4gMjAwNCBXaWNrZXQgaGFzIGJlZW4gYW4gb3BlbiBzb3VyY2UKQEAgLTIzNCw3ICsyMzYsNyBAQAogICAgICAgICBwYWdlLCBvciBldmVuIGNvbXBvbmVudCBsZXZlbC48L3A+CiAgICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGgzPk11bHRpLXRhYiBhbmQgd2luZG93IHN1cHBvcnQ8L2gzPgogICAgICAgICA8cD5ObyBtb3JlIHBhaW4gd2hpbGUga2VlcGluZyB0YXBzIG9uIG11bHRpcGxlIHRhYnMgYW5kIHdpbmRvd3MuIApAQCAtMjUxLDcgKzI1Myw3IEBACiAgICAgICAgIGZpbGUuPC9wPgogICAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxoMz5UZXN0IHlvdXIgcGFnZXMgYW5kIGNvbXBvbmVudHM8L2gzPgogICAgICAgICA8cD5XaXRoIFdpY2tldFRlc3RlciB5b3UgY2FuIGFjaGlldmUgdGVzdGluZyBjb3ZlcmFnZSB5b3VyIFFBIApAQCAtMjc0LDQgKzI3Niw2IEBACiA8L2Rpdj4KIDxkaXYgY2xhc3M9ImwtZmlyc3QiPgogPC9kaXY+Cis8aHIgLz4KKwogBjoGRVQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4IGIvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi9iMi9hNzk5ZTNlZjAxOTYzOWVhNzdjMzE2ZDYzZWU2MWU2MzI0NzZmMGE2YzkyMzI5YWI4MjM3ZjVjOGQ1YzgwYQpzaW1pbGFyaXR5IGluZGV4IDg1JQpjb3B5IGZyb20gLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOApjb3B5IHRvIC5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vYjIvYTc5OWUzZWYwMTk2MzllYTc3YzMxNmQ2M2VlNjFlNjMyNDc2ZjBhNmM5MjMyOWFiODIzN2Y1YzhkNWM4MGEKaW5kZXggZjYzMWU0Yi4uOWZjMmU1MCAxMDA2NDQKLS0tIGEvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOAorKysgYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duL2IyL2E3OTllM2VmMDE5NjM5ZWE3N2MzMTZkNjNlZTYxZTYzMjQ3NmYwYTZjOTIzMjlhYjgyMzdmNWM4ZDVjODBhCkBAIC0xLDQ2ICsxLDQwIEBACi0ECEkiAnI9PGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgorBAhJIgK7PjxkaXYgY2xhc3M9ImwtZnVsbCBsLWZpcnN0IHByZWFtYmxlIj4KICAgICA8aDEgaWQ9ImludHJvZHVjdGlvbiI+QW5ub3VuY2luZyBBcGFjaGUmbmJzcDtXaWNrZXQmbmJzcDs4OiBXcml0ZSBMZXNzLCBBY2hpZXZlIE1vcmU8L2gxPgorICAgIDxkaXY+CisgICAgICA8aW1nIHNyYz0iL2ltZy9sb2dvLnN2ZyIgYWx0PSJBcGFjaGUgV2lja2V0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgLz4KKyAgICA8L2Rpdj4KICAgICA8cD4KLSAgICAgIFRoZSBBcGFjaGUgV2lja2V0IHByb2plY3QgYW5ub3VuY2VzIHRoZSA4dGggbWFqb3IgcmVsZWFzZSBvZiB0aGUgb3BlbiBzb3VyY2UgSmF2YSB3ZWIgZnJhbWV3b3JrIHNlcnZpY2luZyB3ZWJzaXRlcyBhbmQgYXBwbGljYXRpb25zIGFjcm9zcyB0aGUgZ2xvYmUgZm9yIG92ZXIgYSBkZWNhZGUuIFdpdGggdGhpcyByZWxlYXNlIFdpY2tldCBlbWJyYWNlcyBKYXZhIDggaWRpb21zIGZ1bGx5LCBhbGxvd2luZyB0aGUgdXNlIG9mIGxhbWJkYSBleHByZXNzaW9ucyBpbiBhbGwgdGhlIHJpZ2h0IHBsYWNlcy4gV2l0aCBXaWNrZXQgOCB5b3UgY2FuIHdyaXRlIGZld2VyLCBmYXN0ZXIgYW5kIG1vcmUgbWFpbnRhaW5hYmxlIGNvZGUuCisgICAgICBUaGUgQXBhY2hlIFdpY2tldCBwcm9qZWN0IGFubm91bmNlcyB0aGUgOXRoIG1ham9yIHJlbGVhc2Ugb2YgdGhlIG9wZW4gc291cmNlIEphdmEgd2ViIGZyYW1ld29yayBzZXJ2aWNpbmcgd2Vic2l0ZXMgYW5kIGFwcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGdsb2JlIHNpbmNlIDIwMDQuIEJ1aWx0IG9uIHRvcCBvZiBKYXZhIDExLCB0aGlzIHZlcnNpb24gb2YgV2lja2V0IGJyaW5ncyB3ZWIgZGV2ZWxvcG1lbnQgaW50byB0aGUgbW9kZXJuIEphdmEgd29ybGQsIG9mZmVyaW5nIGEgZnVuZGFtZW50YWwgdG9vbCB0byBrZWVwIHlvdSBjb2RlIHVwIHRvIGRhdGUgd2l0aCBKYXZhIGV2b2x1dGlvbi4KICAgICA8L3A+CiA8L2Rpdj4KIDxkaXYgY2xhc3M9ImwtZmlyc3QiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgotICAgIDxoMz5BIENhcmVmdWwgQXBwbGljYXRpb24gb2YgSmF2YSA4PC9oMz4KLQorICAgIDxoMz5CcmluZyB0aGUgd2ViIGludG8gdGhlIG1vZGVybiBKYXZhIGVyYTwvaDM+CiAgICAgPHA+Ci0gICAgICBXaGlsZSBwcmV2aW91cyB2ZXJzaW9ucyBvZiBXaWNrZXQgd29yayB3ZWxsIHdpdGggSmF2YSA4IGFuZCBiZXlvbmQsIHRoZSBXaWNrZXQgQVBJIHdhcyBub3Qgb3B0aW1pemVkIHRvIG1ha2UgZnVsbCB1c2Ugb2YgSmF2YSA4IGlkaW9tcy4gQWZ0ZXIgY2FyZWZ1bCBjb25zaWRlcmF0aW9uIGFuZCB0cnlpbmcgbWFueSBwYXRocyB0byBhZG9wdCBuZXcgd2F5cyBvZiBjb21iaW5pbmcgSmF2YSA4IGFuZCBXaWNrZXQsIHdlIGZpbmFsbHkgc2V0dGxlZCBvbiB0aGUgY3VycmVudCBBUEkuCisgICAgIFRoZSByZWxlYXNlIG9mIEphdmEgOSBoYXMgYmVlbiBhIHR1cm5pbmcgcG9pbnQgaW4gSmF2YSBoaXN0b3J5IHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gZm9yIHRoZSBtb2Rlcm4gSmF2YSBlcmEuIEhvd2V2ZXIsIHRoZSBtYWduaXR1ZGUgb2YgdGhpcyBjaGFuZ2UgaGFzIGRpc2NvdXJhZ2UgbWFueSBkZXZlbG9wZXJzIGZyb20gbGVhdmluZyB0aGUgc2FmZSBoYXJib3IgcmFwcHJlc2VudGVkIGJ5IEphdmEgOC4gV2l0aCBXaWNrZXQgOSB3ZSBmaW5hbGx5IGhhdmUgYSBmdW5kYW1lbnRhbCB0b29sIHRvIG1vdmUgb24gYW5kIGJyaW5nIG91ciB3ZWIgYXBwbGljYXRpb24gaW50byB0aGUgbmV3IEphdmEgd29ybGQuICAKICAgICA8L3A+CiAgICAgPHA+Ci0gICAgICBKYXZhIDjigJlzIG5ldyBpZGlvbXMgYW5kIHR5cGVzIGhhdmUgYmVlbiBhcHBsaWVkIHRocm91Z2hvdXQgV2lja2V04oCZcyBBUEkuIExlYXJuIG1vcmUgYWJvdXQgdGhlIGRldGFpbHMgYmVsb3cuCisgICAgICBXaXRoIHRoaXMgdmVyc2lvbiBXaWNrZXQgaGFzIGJlZW4gY29tcGxldGVkIHJldmlzaXRlZCBhbmQgaW1wcm92ZWQgdG8gZW1icmFjZSBuZXcgdGVjaG5vbG9naWVzIGxpa2UgSmF2YSBtb2R1bGFyaXphdGlvbiBhbmQgbmV3IGxpYnJhcnkgbGlrZSBKVW5pdCA1LgogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Ci0gIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KLSAgICA8aDM+SmF2YSA4KyBSZXF1aXJlZDwvaDM+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIEphdmEgcmVsZWFzZSBjeWNsZTwvaDM+CiAgICAgPHA+Ci0gICAgICBTdGFydGluZyB3aXRoIFdpY2tldCA4IHRoZSBtaW5pbXVtIHJlcXVpcmVkIHZlcnNpb24gb2YgSmF2YSBpcyBKYXZhIDguIEFsbCBXaWNrZXQgc3VwcGxpZWQgcHJvamVjdHMgaGF2ZSBiZWVuIHVwZ3JhZGVkIHRvIEphdmEgOCBhbmQgV2lja2V0IDgsIGFuZCBzaG9ydGx5IGFsbCBhY3RpdmUgY29tbXVuaXR5IHByb2plY3RzLCBzdWNoIGFzIFdpY2tldCBTdHVmZiwgd2lsbCBmb2xsb3cgc3VpdC4KLSAgICA8L3A+Ci0gICAgPHA+Ci0gICAgICBXaXRoIHRoZSBhZG9wdGlvbiBvZiBKYXZhIDggd2Ugd2VyZSBhYmxlIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgTGFtYmRhcy4KKyAgICAgIFdpdGggSmF2YSByZWxlYXNpbmcgYXQgYSBmYXN0ZXIgcGhhc2UgaXQncyBpbXBvcnRhbnQgdG8ga2VlcCBhIGxpYnJhcnkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXN0ZXN0IGNoYW5nZXMgaW50cm9kdWNlZCBpbiB0aGUgcGxhdGZvcm0gYW5kIGVuc3VyZSBpdCB3b3JrcyB3aXRoIHRoZSBsYXRlc3QgSmF2YSByZWxlYXNlLiBXaWNrZXQgZG9lcyBhbGwgb2YgdGhpcyBieSB0YWtpbmcgcGFydCB0byB0aGUgPGEgc3JjPSJodHRwczovL3dpa2kub3Blbmpkay5qYXZhLm5ldC9kaXNwbGF5L3F1YWxpdHkvUXVhbGl0eStPdXRyZWFjaCIgX3RhcmdldD0iYmxhbmsiPk9wZW5KREsgUXVhbGl0eSBPdXRyZWFjaDwvYT4sIGFuIGluaXRpYXRpdmUgYWltZWQgdG8gdGVzdCBwb3B1bGFyIE9wZW4gU291cmNlIHByb2plY3RzIHdpdGggYm90aCB0aGUgbGF0ZXN0IE9wZW5KREsgcmVsZWFzZSBhbmQgdGhlIEVhcmx5IEFjY2VzcyByZWxlYXNlLgogICAgIDwvcD4KICAgPC9kaXY+Ci0gIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KLSAgICA8aDM+U2VydmxldCAzLjEgUmVxdWlyZWQ8L2gzPgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz4gQmUgcmVhZHkgZm9yIHRoZSBuZXh0IEphdmEgRW50ZXJwcmlzZTwvaDM+CiAgICAgPHA+Ci0gICAgICBBcyBvZiBXaWNrZXQgOCB3ZSBvbmx5IHN1cHBvcnQgdGhlIEphdmEgU2VydmxldCBBUEkgMy4xIChvciBuZXdlcikuIFRoaXMgbWVhbnMgdGhhdCB0byBydW4gYXBwbGljYXRpb25zIGJ1aWx0IHVzaW5nIFdpY2tldCA4IHlvdSBoYXZlIHRvIHJ1biB5b3VyIGFwcGxpY2F0aW9uIGluIGEgbW9kZXJuIHNlcnZlciBsaWtlIFRvbWNhdCA4LngsIEpldHR5IDkuMSsgb3IgYSBKYXZhIEVFIDcgY29tcGF0aWJsZSBzZXJ2ZXIuCi0gICAgPC9wPgotICA8L2Rpdj4KLSAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgotICAgIDxoMz5KYXZhIERhdGUvVGltZSBBUEk8L2gzPgotICAgIDxwPgotICAgICAgV2lja2V0IDggcHJvdmlkZXMgb3V0LW9mLXRoZS1ib3ggc3VwcG9ydCBmb3IgdGhlIG5ldyB0eXBlcyBmb3IgaGFuZGxpbmcgZGF0ZXMgaW4gSmF2YSA4LiBUaGVzZSBjYW4gYmUgY29udmVydGVkLCB2YWxpZGF0ZWQgYW5kIGJvdW5kIHRvIGNvbXBvbmVudHMuCisgICAgIFNob3J0bHkgYWZ0ZXIgSmF2YSA5IHdhcyByZWxlYXNlZCwgT3JhY2xlIHN1Ym1pdHRlZCBKYXZhIEVFIHRvIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24uIEFzIHNpZGUgZWZmZWN0IG9mIHRoaXMgb3duZXIgY2hhbmdlLCB0aGUgcGFja2FnZSBuYW1lICdqYXZheCcgaGFkIHRvIGJlIG1pZ3JhdGUgdG8gJ2pha2FydGEnLiBXaWNrZXQgaGlzdG9yaWNhbGx5IHByb21vdGVkIGRlY3VwbGluZyBiZXR3ZWVuIEphdmEgRUUgQVBJcyBhbmQgYXBwbGljYXRpb24gY29kZSwgaGVuY2UgbWFraW5nIG11Y2ggbW9yZSBlYXNpZXIgdGhlIHRyYW5zaXRpb24gdG8gdGhlIGZ1dHVyZSBKYXZhIEVudGVycHJpc2UgdmVyc2lvbnMuIAogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorCis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtdHdvLXRoaXJkIj4KICAgICA8aDM+TGFtYmRhcyBpbiBBbGwgVGhlIFJpZ2h0IFBsYWNlczwvaDM+CiAgICAgPHA+CkBAIC01Miw3ICs0Niw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgzPk9wdGlvbmFsIGlzIFNvbWV0aW1lcyBSZXF1aXJlZDwvaDM+CiAgIDwvZGl2PgpAQCAtOTEsNyArODUsNyBAQAogICA8L2Rpdj4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDM+TW9kZWxzIGFzIEZ1bmN0aW9uYWwgSW50ZXJmYWNlPC9oMz4KICAgICA8cD4KQEAgLTExOCw3ICsxMTIsNyBAQAogICA8L2Rpdj4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KICAgICA8aDM+Tm8gUmV3cml0ZSBOZWNlc3Nhcnk8L2gzPgogICAgIDxwPgpAQCAtMTQxLDcgKzEzNSw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgyPkdldHRpbmcgU3RhcnRlZCB3aXRoIFdpY2tldCA4PC9oMj4KICAgICA8cD4KQEAgLTE4OCw3ICsxODIsNyBAQAogICAgIHdlYiBhcHBsaWNhdGlvbi48L3A+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aW1nIHNyYz0iL2ltZy9qYXZhLXdpY2tldC1odG1sNS5wbmciIGNsYXNzPSJsLWZ1bGwiIC8+CiAgICAgICAgIDxoMz5KdXN0IEphdmEgJmFtcDsgSFRNTDwvaDM+CkBAIC0yMTIsNyArMjA2LDcgQEAKICAgICAgICAgb2YgYmFzaWMgQWpheCBjb21wb25lbnRzLjwvcD4KICAgICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aDM+T3BlbiBTb3VyY2Ugd2l0aCBBcGFjaGUgTGljZW5zZTwvaDM+CiAgICAgICAgIDxwPlNpbmNlIGl0cyBpbmNlcHRpb24gaW4gMjAwNCBXaWNrZXQgaGFzIGJlZW4gYW4gb3BlbiBzb3VyY2UKQEAgLTIzNCw3ICsyMjgsNyBAQAogICAgICAgICBwYWdlLCBvciBldmVuIGNvbXBvbmVudCBsZXZlbC48L3A+CiAgICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGgzPk11bHRpLXRhYiBhbmQgd2luZG93IHN1cHBvcnQ8L2gzPgogICAgICAgICA8cD5ObyBtb3JlIHBhaW4gd2hpbGUga2VlcGluZyB0YXBzIG9uIG11bHRpcGxlIHRhYnMgYW5kIHdpbmRvd3MuIApAQCAtMjUxLDcgKzI0NSw3IEBACiAgICAgICAgIGZpbGUuPC9wPgogICAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxoMz5UZXN0IHlvdXIgcGFnZXMgYW5kIGNvbXBvbmVudHM8L2gzPgogICAgICAgICA8cD5XaXRoIFdpY2tldFRlc3RlciB5b3UgY2FuIGFjaGlldmUgdGVzdGluZyBjb3ZlcmFnZSB5b3VyIFFBIApAQCAtMjc0LDQgKzI2OCw2IEBACiA8L2Rpdj4KIDxkaXYgY2xhc3M9ImwtZmlyc3QiPgogPC9kaXY+Cis8aHIgLz4KKwogBjoGRVQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4IGIvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi9iNy81YjgzZTNkNDJjYTdkNWQxNmRlYjU2MWNhNWJlMmRiOWE3M2M4OGUwYTY4YjNkOWE0Y2VmNWQ3YjJkNzE2MApzaW1pbGFyaXR5IGluZGV4IDg3JQpjb3B5IGZyb20gLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOApjb3B5IHRvIC5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vYjcvNWI4M2UzZDQyY2E3ZDVkMTZkZWI1NjFjYTViZTJkYjlhNzNjODhlMGE2OGIzZDlhNGNlZjVkN2IyZDcxNjAKaW5kZXggZjYzMWU0Yi4uOWFhOTg0MyAxMDA2NDQKLS0tIGEvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOAorKysgYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duL2I3LzViODNlM2Q0MmNhN2Q1ZDE2ZGViNTYxY2E1YmUyZGI5YTczYzg4ZTBhNjhiM2Q5YTRjZWY1ZDdiMmQ3MTYwCkBAIC0xLDM0ICsxLDMzIEBACi0ECEkiAnI9PGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgorBAhJIgItPzxkaXYgY2xhc3M9ImwtZnVsbCBsLWZpcnN0IHByZWFtYmxlIj4KICAgICA8aDEgaWQ9ImludHJvZHVjdGlvbiI+QW5ub3VuY2luZyBBcGFjaGUmbmJzcDtXaWNrZXQmbmJzcDs4OiBXcml0ZSBMZXNzLCBBY2hpZXZlIE1vcmU8L2gxPgorICAgIDxkaXY+CisgICAgICA8aW1nIHNyYz0iL2ltZy9sb2dvLnN2ZyIgYWx0PSJBcGFjaGUgV2lja2V0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgLz4KKyAgICA8L2Rpdj4KICAgICA8cD4KLSAgICAgIFRoZSBBcGFjaGUgV2lja2V0IHByb2plY3QgYW5ub3VuY2VzIHRoZSA4dGggbWFqb3IgcmVsZWFzZSBvZiB0aGUgb3BlbiBzb3VyY2UgSmF2YSB3ZWIgZnJhbWV3b3JrIHNlcnZpY2luZyB3ZWJzaXRlcyBhbmQgYXBwbGljYXRpb25zIGFjcm9zcyB0aGUgZ2xvYmUgZm9yIG92ZXIgYSBkZWNhZGUuIFdpdGggdGhpcyByZWxlYXNlIFdpY2tldCBlbWJyYWNlcyBKYXZhIDggaWRpb21zIGZ1bGx5LCBhbGxvd2luZyB0aGUgdXNlIG9mIGxhbWJkYSBleHByZXNzaW9ucyBpbiBhbGwgdGhlIHJpZ2h0IHBsYWNlcy4gV2l0aCBXaWNrZXQgOCB5b3UgY2FuIHdyaXRlIGZld2VyLCBmYXN0ZXIgYW5kIG1vcmUgbWFpbnRhaW5hYmxlIGNvZGUuCisgICAgICBUaGUgQXBhY2hlIFdpY2tldCBwcm9qZWN0IGFubm91bmNlcyB0aGUgOXRoIG1ham9yIHJlbGVhc2Ugb2YgdGhlIG9wZW4gc291cmNlIEphdmEgd2ViIGZyYW1ld29yayBzZXJ2aWNpbmcgd2Vic2l0ZXMgYW5kIGFwcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGdsb2JlIHNpbmNlIDIwMDQuIEJ1aWx0IG9uIHRvcCBvZiBKYXZhIDExLCB0aGlzIHZlcnNpb24gb2YgV2lja2V0IGJyaW5ncyB3ZWIgZGV2ZWxvcG1lbnQgaW50byB0aGUgbW9kZXJuIEphdmEgd29ybGQsIG9mZmVyaW5nIGEgZnVuZGFtZW50YWwgdG9vbCB0byBrZWVwIHlvdSBjb2RlIHVwIHRvIGRhdGUgd2l0aCBKYXZhIGV2b2x1dGlvbi4KICAgICA8L3A+CiA8L2Rpdj4KIDxkaXYgY2xhc3M9ImwtZmlyc3QiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgotICAgIDxoMz5BIENhcmVmdWwgQXBwbGljYXRpb24gb2YgSmF2YSA4PC9oMz4KLQorICAgIDxoMz5CcmluZyB0aGUgd2ViIGludG8gdGhlIG1vZGVybiBKYXZhIGVyYTwvaDM+CiAgICAgPHA+Ci0gICAgICBXaGlsZSBwcmV2aW91cyB2ZXJzaW9ucyBvZiBXaWNrZXQgd29yayB3ZWxsIHdpdGggSmF2YSA4IGFuZCBiZXlvbmQsIHRoZSBXaWNrZXQgQVBJIHdhcyBub3Qgb3B0aW1pemVkIHRvIG1ha2UgZnVsbCB1c2Ugb2YgSmF2YSA4IGlkaW9tcy4gQWZ0ZXIgY2FyZWZ1bCBjb25zaWRlcmF0aW9uIGFuZCB0cnlpbmcgbWFueSBwYXRocyB0byBhZG9wdCBuZXcgd2F5cyBvZiBjb21iaW5pbmcgSmF2YSA4IGFuZCBXaWNrZXQsIHdlIGZpbmFsbHkgc2V0dGxlZCBvbiB0aGUgY3VycmVudCBBUEkuCisgICAgIFRoZSByZWxlYXNlIG9mIEphdmEgOSBoYXMgYmVlbiBhIHR1cm5pbmcgcG9pbnQgaW4gSmF2YSBoaXN0b3J5IHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gZm9yIHRoZSBtb2Rlcm4gSmF2YSBlcmEuIEhvd2V2ZXIsIHRoZSBtYWduaXR1ZGUgb2YgdGhpcyBjaGFuZ2UgaGFzIGRpc2NvdXJhZ2UgbWFueSBkZXZlbG9wZXJzIGZyb20gbGVhdmluZyB0aGUgc2FmZSBoYXJib3IgcmFwcHJlc2VudGVkIGJ5IEphdmEgOC4gV2l0aCBXaWNrZXQgOSB3ZSBmaW5hbGx5IGhhdmUgYSBmdW5kYW1lbnRhbCB0b29sIHRvIG1vdmUgb24gYW5kIGJyaW5nIG91ciB3ZWIgYXBwbGljYXRpb24gaW50byB0aGUgbmV3IEphdmEgd29ybGQuICAKICAgICA8L3A+CiAgICAgPHA+Ci0gICAgICBKYXZhIDjigJlzIG5ldyBpZGlvbXMgYW5kIHR5cGVzIGhhdmUgYmVlbiBhcHBsaWVkIHRocm91Z2hvdXQgV2lja2V04oCZcyBBUEkuIExlYXJuIG1vcmUgYWJvdXQgdGhlIGRldGFpbHMgYmVsb3cuCisgICAgICBXaXRoIHRoaXMgdmVyc2lvbiBXaWNrZXQgaGFzIGJlZW4gY29tcGxldGVkIHJldmlzaXRlZCBhbmQgaW1wcm92ZWQgdG8gZW1icmFjZSBuZXcgdGVjaG5vbG9naWVzIGxpa2UgSmF2YSBtb2R1bGFyaXphdGlvbiBhbmQgbmV3IGxpYnJhcnkgbGlrZSBKVW5pdCA1LgogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KLSAgICA8aDM+SmF2YSA4KyBSZXF1aXJlZDwvaDM+CisgICAgPGgzPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIEphdmEgcmVsZWFzZSBjeWNsZTwvaDM+CiAgICAgPHA+Ci0gICAgICBTdGFydGluZyB3aXRoIFdpY2tldCA4IHRoZSBtaW5pbXVtIHJlcXVpcmVkIHZlcnNpb24gb2YgSmF2YSBpcyBKYXZhIDguIEFsbCBXaWNrZXQgc3VwcGxpZWQgcHJvamVjdHMgaGF2ZSBiZWVuIHVwZ3JhZGVkIHRvIEphdmEgOCBhbmQgV2lja2V0IDgsIGFuZCBzaG9ydGx5IGFsbCBhY3RpdmUgY29tbXVuaXR5IHByb2plY3RzLCBzdWNoIGFzIFdpY2tldCBTdHVmZiwgd2lsbCBmb2xsb3cgc3VpdC4KLSAgICA8L3A+Ci0gICAgPHA+Ci0gICAgICBXaXRoIHRoZSBhZG9wdGlvbiBvZiBKYXZhIDggd2Ugd2VyZSBhYmxlIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgTGFtYmRhcy4KKyAgICAgIFdpdGggSmF2YSByZWxlYXNpbmcgYXQgYSBmYXN0ZXIgcGhhc2UgaXQncyBpbXBvcnRhbnQgdG8ga2VlcCBhIGxpYnJhcnkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXN0ZXN0IGNoYW5nZXMgaW50cm9kdWNlZCBpbiB0aGUgcGxhdGZvcm0gYW5kIGVuc3VyZSBpdCB3b3JrcyB3aXRoIHRoZSBsYXRlc3QgSmF2YSByZWxlYXNlLiBXaWNrZXQgZG9lcyBhbGwgb2YgdGhpcyBieSB0YWtpbmcgcGFydCB0byB0aGUgW09wZW5KREsgUXVhbGl0eSBPdXRyZWFjaF0oaHR0cHM6Ly93aWtpLm9wZW5qZGsuamF2YS5uZXQvZGlzcGxheS9xdWFsaXR5L1F1YWxpdHkrT3V0cmVhY2gpLCBhbiBpbml0aWF0aXZlIGFpbWVkIHRvIHRlc3QgcG9wdWxhciBPcGVuIFNvdXJjZSBwcm9qZWN0cyB3aXRoIGJvdGggdGhlIGxhdGVzdCBPcGVuSkRLIHJlbGVhc2UgYW5kIHRoZSBFYXJseSBBY2Nlc3MgcmVsZWFzZS4KICAgICA8L3A+CiAgIDwvZGl2PgogICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+Ci0gICAgPGgzPlNlcnZsZXQgMy4xIFJlcXVpcmVkPC9oMz4KKyAgICA8aDM+IEJlIHJlYWR5IGZvciB0aGUgbmV4dCBKYXZhIEVudGVycHJpc2U8L2gzPgogICAgIDxwPgogICAgICAgQXMgb2YgV2lja2V0IDggd2Ugb25seSBzdXBwb3J0IHRoZSBKYXZhIFNlcnZsZXQgQVBJIDMuMSAob3IgbmV3ZXIpLiBUaGlzIG1lYW5zIHRoYXQgdG8gcnVuIGFwcGxpY2F0aW9ucyBidWlsdCB1c2luZyBXaWNrZXQgOCB5b3UgaGF2ZSB0byBydW4geW91ciBhcHBsaWNhdGlvbiBpbiBhIG1vZGVybiBzZXJ2ZXIgbGlrZSBUb21jYXQgOC54LCBKZXR0eSA5LjErIG9yIGEgSmF2YSBFRSA3IGNvbXBhdGlibGUgc2VydmVyLgogICAgIDwvcD4KQEAgLTQwLDcgKzM5LDcgQEAKICAgICA8L3A+CiAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC10d28tdGhpcmQiPgogICAgIDxoMz5MYW1iZGFzIGluIEFsbCBUaGUgUmlnaHQgUGxhY2VzPC9oMz4KICAgICA8cD4KQEAgLTUyLDcgKzUxLDcgQEAKICAgICA8L3A+CiAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDM+T3B0aW9uYWwgaXMgU29tZXRpbWVzIFJlcXVpcmVkPC9oMz4KICAgPC9kaXY+CkBAIC05MSw3ICs5MCw3IEBACiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgogICAgIDxoMz5Nb2RlbHMgYXMgRnVuY3Rpb25hbCBJbnRlcmZhY2U8L2gzPgogICAgIDxwPgpAQCAtMTE4LDcgKzExNyw3IEBACiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgogICAgIDxoMz5ObyBSZXdyaXRlIE5lY2Vzc2FyeTwvaDM+CiAgICAgPHA+CkBAIC0xNDEsNyArMTQwLDcgQEAKICAgICA8L3A+CiAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDI+R2V0dGluZyBTdGFydGVkIHdpdGggV2lja2V0IDg8L2gyPgogICAgIDxwPgpAQCAtMTg4LDcgKzE4Nyw3IEBACiAgICAgd2ViIGFwcGxpY2F0aW9uLjwvcD4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2phdmEtd2lja2V0LWh0bWw1LnBuZyIgY2xhc3M9ImwtZnVsbCIgLz4KICAgICAgICAgPGgzPkp1c3QgSmF2YSAmYW1wOyBIVE1MPC9oMz4KQEAgLTIxMiw3ICsyMTEsNyBAQAogICAgICAgICBvZiBiYXNpYyBBamF4IGNvbXBvbmVudHMuPC9wPgogICAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxoMz5PcGVuIFNvdXJjZSB3aXRoIEFwYWNoZSBMaWNlbnNlPC9oMz4KICAgICAgICAgPHA+U2luY2UgaXRzIGluY2VwdGlvbiBpbiAyMDA0IFdpY2tldCBoYXMgYmVlbiBhbiBvcGVuIHNvdXJjZQpAQCAtMjM0LDcgKzIzMyw3IEBACiAgICAgICAgIHBhZ2UsIG9yIGV2ZW4gY29tcG9uZW50IGxldmVsLjwvcD4KICAgICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aDM+TXVsdGktdGFiIGFuZCB3aW5kb3cgc3VwcG9ydDwvaDM+CiAgICAgICAgIDxwPk5vIG1vcmUgcGFpbiB3aGlsZSBrZWVwaW5nIHRhcHMgb24gbXVsdGlwbGUgdGFicyBhbmQgd2luZG93cy4gCkBAIC0yNTEsNyArMjUwLDcgQEAKICAgICAgICAgZmlsZS48L3A+CiAgICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGgzPlRlc3QgeW91ciBwYWdlcyBhbmQgY29tcG9uZW50czwvaDM+CiAgICAgICAgIDxwPldpdGggV2lja2V0VGVzdGVyIHlvdSBjYW4gYWNoaWV2ZSB0ZXN0aW5nIGNvdmVyYWdlIHlvdXIgUUEgCkBAIC0yNzQsNCArMjczLDYgQEAKIDwvZGl2PgogPGRpdiBjbGFzcz0ibC1maXJzdCI+CiA8L2Rpdj4KKzxociAvPgorCiAGOgZFVApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMDkvOGY0MDYwOTczNWRkOGEyNWIxZDk0MzllZmEyYjhkNWRjNGZkZGUwNDMwZTRiMjgxNDRmNjFjMjE1MDI2YTggYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duL2NjLzQ0YzJmNjgzMmQxMzljNmZlZTQ0MDQ0OGU2MGY0YzYyZjE0MmVlNDJjOWI1MmUyMTUzZTViNjQ1MDcxZTY1CnNpbWlsYXJpdHkgaW5kZXggOTYlCmNvcHkgZnJvbSAuamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4CmNvcHkgdG8gLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi9jYy80NGMyZjY4MzJkMTM5YzZmZWU0NDA0NDhlNjBmNGM2MmYxNDJlZTQyYzliNTJlMjE1M2U1YjY0NTA3MWU2NQppbmRleCBmNjMxZTRiLi45ZTQ4MGM0IDEwMDY0NAotLS0gYS8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4CisrKyBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vY2MvNDRjMmY2ODMyZDEzOWM2ZmVlNDQwNDQ4ZTYwZjRjNjJmMTQyZWU0MmM5YjUyZTIxNTNlNWI2NDUwNzFlNjUKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi9mNS83ZmVmZTJiYzFmMjRhMWQyMjY3ZTI5MTRmNzUxYmUxZjNiZDM2ZTg3OTc3YWRmNmExNjEzZmI4NTQyNTNiYyBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vZjUvN2ZlZmUyYmMxZjI0YTFkMjI2N2UyOTE0Zjc1MWJlMWYzYmQzNmU4Nzk3N2FkZjZhMTYxM2ZiODU0MjUzYmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2E2MWNiNgotLS0gL2Rldi9udWxsCisrKyBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vZjUvN2ZlZmUyYmMxZjI0YTFkMjI2N2UyOTE0Zjc1MWJlMWYzYmQzNmU4Nzk3N2FkZjZhMTYxM2ZiODU0MjUzYmMKQEAgLTAsMCArMSwyMTEgQEAKKwQISSICQSk8ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CisgICAgPGgxIGlkPSJpbnRyb2R1Y3Rpb24iPkFubm91bmNpbmcgQXBhY2hlJm5ic3A7V2lja2V0Jm5ic3A7ODogV3JpdGUgTGVzcywgQWNoaWV2ZSBNb3JlPC9oMT4KKyAgICA8ZGl2PgorICAgICAgPGltZyBzcmM9Ii9pbWcvbG9nby5zdmciIGFsdD0iQXBhY2hlIFdpY2tldCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIC8+CisgICAgPC9kaXY+CisgICAgPHA+CisgICAgICBUaGUgQXBhY2hlIFdpY2tldCBwcm9qZWN0IGFubm91bmNlcyB0aGUgOXRoIG1ham9yIHJlbGVhc2Ugb2YgdGhlIG9wZW4gc291cmNlIEphdmEgd2ViIGZyYW1ld29yayBzZXJ2aWNpbmcgd2Vic2l0ZXMgYW5kIGFwcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGdsb2JlIHNpbmNlIDIwMDQuIAorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIEJ1aWx0IG9uIHRvcCBvZiBKYXZhIDExLCB0aGlzIHZlcnNpb24gb2YgV2lja2V0IGJyaW5ncyB3ZWIgZGV2ZWxvcG1lbnQgaW50byB0aGUgbW9kZXJuIEphdmEgd29ybGQsIG9mZmVyaW5nIGEgZnVuZGFtZW50YWwgdG9vbCB0byBrZWVwIHlvdSBjb2RlIHVwIHRvIGRhdGUgd2l0aCBKYXZhIGV2b2x1dGlvbi4KKyAgICA8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QiPgorICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgorICAgIDxoMz5CcmluZyB0aGUgd2ViIGludG8gdGhlIG1vZGVybiBKYXZhIGVyYTwvaDM+CisgICAgPHA+CisgICAgIFRoZSByZWxlYXNlIG9mIEphdmEgOSBoYXMgYmVlbiBhIHR1cm5pbmcgcG9pbnQgaW4gSmF2YSBoaXN0b3J5IHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gZm9yIHRoZSBtb2Rlcm4gSmF2YSBlcmEuIEhvd2V2ZXIsIHRoZSBtYWduaXR1ZGUgb2YgdGhpcyBjaGFuZ2UgaGFzIGRpc2NvdXJhZ2UgbWFueSBkZXZlbG9wZXJzIGZyb20gbGVhdmluZyB0aGUgc2FmZSBoYXJib3IgcmFwcHJlc2VudGVkIGJ5IEphdmEgOC4gV2l0aCBXaWNrZXQgOSB3ZSBmaW5hbGx5IGhhdmUgYSBmdW5kYW1lbnRhbCB0b29sIHRvIG1vdmUgb24gYW5kIGJyaW5nIG91ciB3ZWIgYXBwbGljYXRpb24gaW50byB0aGUgbmV3IEphdmEgd29ybGQuICAKKyAgICA8L3A+CisgICAgPHA+CisgICAgICBXaXRoIHRoaXMgdmVyc2lvbiBXaWNrZXQgaGFzIGJlZW4gY29tcGxldGVkIHJldmlzaXRlZCBhbmQgaW1wcm92ZWQgdG8gZW1icmFjZSBuZXcgdGVjaG5vbG9naWVzIGxpa2UgSmF2YSBtb2R1bGFyaXphdGlvbiBhbmQgbmV3IGxpYnJhcnkgbGlrZSBKVW5pdCA1LgorICAgIDwvcD4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5TdGF5IHVwIHRvIGRhdGUgd2l0aCBKYXZhIHJlbGVhc2UgY3ljbGU8L2gzPgorICAgIDxwPgorICAgICAgV2l0aCBKYXZhIHJlbGVhc2luZyBhdCBhIGZhc3RlciBwaGFzZSBpdCdzIGltcG9ydGFudCB0byBrZWVwIGEgbGlicmFyeSB1cCB0byBkYXRlIHdpdGggdGhlIGxhc3Rlc3QgY2hhbmdlcyBpbnRyb2R1Y2VkIGluIHRoZSBwbGF0Zm9ybSBhbmQgZW5zdXJlIGl0IHdvcmtzIHdpdGggdGhlIGxhdGVzdCBKYXZhIHJlbGVhc2UuIFdpY2tldCBkb2VzIGFsbCBvZiB0aGlzIGJ5IHRha2luZyBwYXJ0IHRvIHRoZSA8YSBocmVmPSJodHRwczovL3dpa2kub3Blbmpkay5qYXZhLm5ldC9kaXNwbGF5L3F1YWxpdHkvUXVhbGl0eStPdXRyZWFjaCIgdGFyZ2V0PSJfYmxhbmsiPk9wZW5KREsgUXVhbGl0eSBPdXRyZWFjaDwvYT4sIGFuIGluaXRpYXRpdmUgYWltZWQgdG8gdGVzdCBwb3B1bGFyIE9wZW4gU291cmNlIHByb2plY3RzIHdpdGggYm90aCB0aGUgbGF0ZXN0IE9wZW5KREsgcmVsZWFzZSBhbmQgdGhlIEVhcmx5IEFjY2VzcyByZWxlYXNlLgorICAgIDwvcD4KKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPiBCZSByZWFkeSBmb3IgdGhlIG5leHQgSmF2YSBFbnRlcnByaXNlPC9oMz4KKyAgICA8cD4KKyAgICAgU2hvcnRseSBhZnRlciBKYXZhIDkgd2FzIHJlbGVhc2VkLCBPcmFjbGUgc3VibWl0dGVkIEphdmEgRUUgdG8gdGhlIEVjbGlwc2UgRm91bmRhdGlvbi4gQXMgc2lkZSBlZmZlY3Qgb2YgdGhpcyBvd25lciBjaGFuZ2UsIHRoZSBwYWNrYWdlIG5hbWUgJ2phdmF4JyBoYWQgdG8gYmUgbWlncmF0ZSB0byAnamFrYXJ0YScuIFdpY2tldCBoaXN0b3JpY2FsbHkgcHJvbW90ZWQgZGVjdXBsaW5nIGJldHdlZW4gSmF2YSBFRSBBUElzIGFuZCBhcHBsaWNhdGlvbiBjb2RlLCBoZW5jZSBtYWtpbmcgbXVjaCBtb3JlIGVhc2llciB0aGUgdHJhbnNpdGlvbiB0byB0aGUgZnV0dXJlIEphdmEgRW50ZXJwcmlzZSB2ZXJzaW9ucy4gCisgICAgPC9wPgorICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CisgICAgPGgzPlByb3RlY3QgeW91ciB3ZWIgYXBwcyB3aXRoIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IChDU1ApPC9oMz4KKyAgICA8cD4KKyAgICAgQXMgdGhlIG51bWJlciBvZiBzZWN1cml0eSB0aHJlYXRzIGdyb3dzLCBpdCdzIGNydWNpYWwgZm9yIHdlYiBhcHBsaWNhdGlvbnMgdG8gYWRvcHQgdGhlIGxhdGVzdCBzZWN1cml0eSBzdGFuZGFyZHMgYW5kIGNvdW50ZXJtZWFzdXJlcy4gQ1NQIGlzIGEgbW9kZXJuIHN0YW5kYXJkIHRoYXQgYWxsb3dzIGFwcGxpY2F0aW9ucyB0byBkZWNsYXJlIGFwcHJvdmVkIG9yaWdpbnMgb2YgY29udGVudCAoc3VjaCBhcyBKYXZhc2NyaXB0LCBDU1MsIGltYWdlcywgZXRjLi4uKSBmb3IgdGhlIGJyb3dzZXIgdG8gbG9hZC4gQ29uc3RydWN0aW5nIGEgc2FmZSBhbmQgYXQgdGhlIHNhbWUgdGltZSBjb21wbGV0ZSBDU1AgY2FuIGJlIGNoYWxsZW5naW5nLiAKKyAgICAgWW91IGVpdGhlciByaXNrIGxlYXZpbmcgaG9sZXMgaW4gdGhlIGRlZmVuc2Ugb2YgeW91ciBhcHBsaWNhdGlvbiBvciB5b3UgYnJlYWsgY2VydGFpbiBmdW5jdGlvbmFsaXR5LiBQcm90ZWN0aW5nIGFnYWluc3QgdW53YW50ZWQgaW5saW5lIHNjcmlwdHMgaXMgdGhlIG1vc3QgaW1wb3J0YW50IHRhcmdldCB0byBhdHRhaW4uIEluIENTUCB0aGlzIGlzIGNhbGxlZCAndW5zYWZlLWlubGluZScgYW5kIGl0J3MgdGhlIG1vc3QgY29tbW9uIGNhdXNlIG9mIGNyb3NzLXNpdGUgc2NyaXB0aW5nIHZ1bG5lcmFiaWxpdGllcy4KKyAgICA8L3A+CisgICAgPHA+CisgICAgIFdpY2tldCA5IGNvbWVzIHdpdGggZnVsbCBzdXBwb3J0IGZvciBDU1AgYW5kIGRvZXMgbm90IG5lZWQgYW55IHVuc2FmZSBkaXJlY3RpdmVzLiBXaWNrZXQgd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCBhIG5vbmNlIHRvIGV2ZXJ5IGhlYWRlciBjb250cmlidXRpb24gYW5kIHdoaXRlbGlzdCB0aGlzIG5vbmNlLiBUaGlzIGFsbG93cyBmb3IgZmxleGlibGUgbG9hZGluZyBvZiByZXNvdXJjZXMgd2l0aG91dCB0aGUgbmVlZCBvZiBhIGNvbXBsZXggQ1NQLiBPZiBjb3Vyc2UgaXQgaXMgcG9zc2libGUgdG8gbW9kaWZ5IGFuZCBjdXN0b21pemUgdGhlIENTUCwgYWRkIGFkZGl0aW9uYWwgZGlyZWN0aXZlcyBvciBkaXNhYmxlIGl0IGVudGlyZWx5LiBMb29rdXAgb3VyICZsdDthIGhyZWY9Imh0dHA6Ly93aWNrZXQuYXBhY2hlLm9yZy9sZWFybi8jZ3VpZGUiIHRhcmdldD0iX2JsYW5rIiImZ3Q7ZG9jdW1lbnRhdGlvbiZsdDsvYSZndDsgZm9yIG1vcmUgaW5mb3JtYXRpb24uICAgICAKKyAgICA8L3A+CisgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+Tm8gUmV3cml0ZSBOZWNlc3Nhcnk8L2gzPgorICAgIDxwPgorICAgICAgVGhlIFdpY2tldCB0ZWFtIGhhcyBiZWVuIHZlcnkgY2FyZWZ1bCBvZiBhZG9wdGluZyBKYXZhIDggdGVjaG5vbG9naWVzIGFuZCBhcyBzdWNoIHlvdSBkb27igJl0IGhhdmUgdG8gcmV3cml0ZSB5b3VyIHdob2xlIGFwcGxpY2F0aW9uLCB3aGlsc3Qgc3RpbGwgcmVhcGluZyBhbGwgdGhlIGJlbmVmaXRzIG9mIEphdmEgOC4KKyAgICA8L3A+CisgICAgPHA+CisgICAgICBBcyB0aGlzIGlzIGEgbmV3IG1ham9yIHZlcnNpb24gd2UgaGF2ZSwgaW4gYWNjb3JkYW5jZSB3aXRoIHNlbWFudGljIHZlcnNpb25pbmcsIGNsZWFuZWQgdXAgbWFueSBBUElzIGFuZCB5b3Ugd2lsbCBnZXQgY29tcGlsZSBlcnJvcnMgd2hlbiB5b3UgbWlncmF0ZSBmcm9tIHByZXZpb3VzIFdpY2tldCB2ZXJzaW9ucy4KKyAgICA8L3A+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5NaWdyYXRpbmcgdG8gV2lja2V0IDg8L2gzPgorICAgIDxwPgorICAgICAgV2hlbiB5b3UgbWlncmF0ZSBmcm9tIGEgcHJldmlvdXMgV2lja2V0IHZlcnNpb24gdG8gV2lja2V0IDgsIGEgZnVsbCBsaXN0IG9mIGNoYW5nZXMgYW5kIG1pZ3JhdGlvbnMgaXMgYXZhaWxhYmxlIGF0IHRoZSBmb2xsb3dpbmcgcGFnZToKKyAgICA8L3A+CisgICAgPHA+CisgICAgICA8YSBocmVmPSJodHRwczovL3MuYXBhY2hlLm9yZy93aWNrZXQ4bWlncmF0ZSI+aHR0cHM6Ly9zLmFwYWNoZS5vcmcvd2lja2V0OG1pZ3JhdGU8L2E+CisgICAgPC9wPgorICAgIDxwPgorICAgICAgUGxlYXNlIGNvbnN1bHQgdGhpcyBtaWdyYXRpb24gZ3VpZGUgd2hlbiB5b3UgYXJlIG1vdmluZyB0b3dhcmRzIFdpY2tldCA4LgorICAgIDwvcD4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KKyAgICA8aDI+R2V0dGluZyBTdGFydGVkIHdpdGggV2lja2V0IDg8L2gyPgorICAgIDxwPgorICAgICAgSXQgaXMgdmVyeSBlYXN5IHRvIGdldCBzdGFydGVkIHdpdGggV2lja2V0OiB1c2Ugb3VyIDxhIGhyZWY9Ii9zdGFydC9xdWlja3N0YXJ0Lmh0bWwiPnF1aWNrLXN0YXJ0IHdpemFyZDwvYT4gb3IgCisgICAgICB1c2Ugb25lIG9mIHRoZSBvcHRpb25zIGJlbG93LgorICAgIDwvcD4KKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPkRvd25sb2FkIHVzaW5nIEFwYWNoZSBNYXZlbjwvaDM+CisgICAgPHA+CisgICAgICBXaXRoIEFwYWNoZSBNYXZlbiB1cGRhdGUgeW91ciBkZXBlbmRlbmN5IHRvIChhbmQgZG9uJ3QgZm9yZ2V0IHRvCisgICAgICB1cGRhdGUgYW55IG90aGVyIGRlcGVuZGVuY2llcyBvbiBXaWNrZXQgcHJvamVjdHMgdG8gdGhlIHNhbWUgdmVyc2lvbik6CisgICAgPC9wPgorCis8ZmlndXJlIGNsYXNzPSJoaWdobGlnaHQiPjxwcmU+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLXhtbCIgZGF0YS1sYW5nPSJ4bWwiPjxzcGFuIGNsYXNzPSJudCI+Jmx0O2RlcGVuZGVuY3kmZ3Q7PC9zcGFuPgorICAgIDxzcGFuIGNsYXNzPSJudCI+Jmx0O2dyb3VwSWQmZ3Q7PC9zcGFuPm9yZy5hcGFjaGUud2lja2V0PHNwYW4gY2xhc3M9Im50Ij4mbHQ7L2dyb3VwSWQmZ3Q7PC9zcGFuPgorICAgIDxzcGFuIGNsYXNzPSJudCI+Jmx0O2FydGlmYWN0SWQmZ3Q7PC9zcGFuPndpY2tldC1jb3JlPHNwYW4gY2xhc3M9Im50Ij4mbHQ7L2FydGlmYWN0SWQmZ3Q7PC9zcGFuPgorICAgIDxzcGFuIGNsYXNzPSJudCI+Jmx0O3ZlcnNpb24mZ3Q7PC9zcGFuPjguOC4wPHNwYW4gY2xhc3M9Im50Ij4mbHQ7L3ZlcnNpb24mZ3Q7PC9zcGFuPgorPHNwYW4gY2xhc3M9Im50Ij4mbHQ7L2RlcGVuZGVuY3kmZ3Q7PC9zcGFuPjwvY29kZT48L3ByZT48L2ZpZ3VyZT4KKworICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+RG93bmxvYWQgc291cmNlcy9iaW5hcmllcyBtYW51YWxseTwvaDM+CisgICAgPHA+CisgICAgICBPciBkb3dubG9hZCBhbmQgYnVpbGQgdGhlIGRpc3RyaWJ1dGlvbiB5b3Vyc2VsZiwgb3IgdXNlIG91cgorICAgICAgY29udmVuaWVuY2UgYmluYXJ5IHBhY2thZ2UKKyAgICA8L3A+CisgICAgPHVsPgorICAgICAgPGxpPlNvdXJjZTogPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2R5bi9jbG9zZXIuY2dpL3dpY2tldC84LjguMCI+OC44LjAgc291cmNlIGRvd25sb2FkPC9hPjwvbGk+CisgICAgICA8bGk+QmluYXJ5OiA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZHluL2Nsb3Nlci5jZ2kvd2lja2V0LzguOC4wL2JpbmFyaWVzIj44LjguMCBiaW5hcnkgZG93bmxvYWQ8L2E+PC9saT4KKyAgICA8L3VsPgorICA8L2Rpdj4KKzwvZGl2PgorCis8aHIgLz4KKworPGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgorICAgIDxoMSBpZD0iaW50cm9kdWN0aW9uIj5JbnRyb2R1Y2luZyBBcGFjaGUmbmJzcDtXaWNrZXQ8L2gxPgorICAgIDxwPkludmVudGVkIGluIDIwMDQsIFdpY2tldCBpcyBvbmUgb2YgdGhlIGZldyBzdXJ2aXZvcnMgb2YgdGhlIEphdmEKKyAgICBzZXJ2ZXJzaWRlIHdlYiBmcmFtZXdvcmsgd2FycyBvZiB0aGUgbWlkIDIwMDAncy4gV2lja2V0IGlzIGFuIG9wZW4KKyAgICBzb3VyY2UsIGNvbXBvbmVudCBvcmllbnRlZCwgc2VydmVyc2lkZSwgSmF2YSB3ZWIgYXBwbGljYXRpb24gZnJhbWV3b3JrLgorICAgIFdpdGggYSBoaXN0b3J5IG9mIG92ZXIgYSBkZWNhZGUsIGl0IGlzIHN0aWxsIGdvaW5nIHN0cm9uZyBhbmQgaGFzIGEKKyAgICBzb2xpZCBmdXR1cmUgYWhlYWQuIExlYXJuIHdoeSB5b3Ugc2hvdWxkIGNvbnNpZGVyIFdpY2tldCBmb3IgeW91ciBuZXh0CisgICAgd2ViIGFwcGxpY2F0aW9uLjwvcD4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aW1nIHNyYz0iL2ltZy9qYXZhLXdpY2tldC1odG1sNS5wbmciIGNsYXNzPSJsLWZ1bGwiIC8+CisgICAgICAgIDxoMz5KdXN0IEphdmEgJmFtcDsgSFRNTDwvaDM+CisgICAgICAgIDxwPkxldmVyYWdlIHdoYXQgeW91IGtub3cgYWJvdXQgSmF2YSBvciB5b3VyIGZhdm91cml0ZSBIVE1MIAorICAgICAgICBlZGl0b3IgdG8gd3JpdGUgV2lja2V0IGFwcGxpY2F0aW9ucy4gV2l0aCBwdXJlIEphdmEgY29kZSBhbmQgSFRNTCAKKyAgICAgICAgbWFya3VwIFdpY2tldCBpcyB0aGUgZ28tdG8gd2ViIGZyYW1ld29yayBmb3IgcHVyaXN0cy48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aW1nIHNyYz0iL2ltZy93aWNrZXQtc2FmZS5wbmciIGNsYXNzPSJsLWZ1bGwiIC8+CisgICAgICAgIDxoMz5TZWN1cmUgYnkgRGVmYXVsdDwvaDM+CisgICAgICAgIDxwPlVSTHMgZG8gbm90IGV4cG9zZSBzZW5zaXRpdmUgaW5mb3JtYXRpb24gYW5kIGFsbCBjb21wb25lbnQgcGF0aHMgYXJlCisgICAgICAgIHNlc3Npb24tcmVsYXRpdmUuIFdpY2tldCBrZWVwcyB5b3VyIG1vZGVsIHByaXZhdGUgZXhjZXB0IHRob3NlIHBhcnRzCisgICAgICAgIHlvdSBleHBsaWNpdGx5IGV4cG9zZS48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aW1nIHNyYz0iL2ltZy93aWNrZXQtY29tcG9uZW50cy5wbmciIGNsYXNzPSJsLWZ1bGwiIC8+CisgICAgICAgIDxoMz5BSkFYIENvbXBvbmVudHM8L2gzPgorICAgICAgICA8cD5Xcml0ZSBBamF4IGFwcGxpY2F0aW9ucyB3aXRob3V0IGhhdmluZyB0byB3cml0ZSBhIHNpbmdsZSBsaW5lIAorICAgICAgICBvZiBKYXZhU2NyaXB0IGNvZGUuIFdpY2tldCdzIEFqYXggZnVuY3Rpb25hbGl0eSBtYWtlcyBpdCB0cml2aWFsIAorICAgICAgICB0byB1cGRhdGUgc2VsZWN0ZWQgcGFydHMgb2YgYSBVSSwgYW5kIGNvbWVzIHdpdGggYSBncmVhdCBzZWxlY3Rpb24gCisgICAgICAgIG9mIGJhc2ljIEFqYXggY29tcG9uZW50cy48L3A+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5PcGVuIFNvdXJjZSB3aXRoIEFwYWNoZSBMaWNlbnNlPC9oMz4KKyAgICAgICAgPHA+U2luY2UgaXRzIGluY2VwdGlvbiBpbiAyMDA0IFdpY2tldCBoYXMgYmVlbiBhbiBvcGVuIHNvdXJjZQorICAgICAgICBwcm9qZWN0IGFuZCByZW1haW5zIGF2YWlsYWJsZSB1bmRlciBvbmUgb2YgdGhlIG1vc3QgcGVybWlzc2l2ZQorICAgICAgICBsaWNlbnNlczogdGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5NYWludGFpbmFibGUgY29kZTwvaDM+CisgICAgICAgIDxwPlBhZ2VzIGFuZCBDb21wb25lbnRzIGluIFdpY2tldCBhcmUgcmVhbCBKYXZhIG9iamVjdHMgdGhhdCBzdXBwb3J0CisgICAgICAgIGVuY2Fwc3VsYXRpb24sIGluaGVyaXRhbmNlIGFuZCBldmVudHMuIENyZWF0ZSBoaWdoIGxldmVsIGNvbXBvbmVudHMKKyAgICAgICAgd2l0aCBlYXNlIGFuZCBidW5kbGUgaXRzIHN0eWxlc2hlZXRzLCBKYXZhU2NyaXB0IGFuZCBvdGhlciByZXNvdXJjZXMKKyAgICAgICAgaW50byBvbmUgcmV1c2FibGUgcGFja2FnZS48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+SW50ZXJuYXRpb25hbGl6ZWQgdG8gdGFrZSBvbiB0aGUgd29ybGQ8L2gzPgorICAgICAgICA8cD5XaXRoIHN1cHBvcnQgb2Ygb3ZlciAyNSBsYW5ndWFnZXMgb3V0LW9mLXRoZS1ib3gsIFdpY2tldCBsZXQncyAKKyAgICAgICAgeW91IGdldCBzdGFydGVkIGluIHlvdXIgb3duIGxhbmd1YWdlLCBvciBhIHNlY29uZCBsYW5ndWFnZSB3aXRoIG5vIAorICAgICAgICBlZmZvcnQuIFlvdSBjYW4gcHJvdmlkZSBhbHRlcm5hdGl2ZSBsYW5ndWFnZXMgb24gdGhlIGFwcGxpY2F0aW9uLCAKKyAgICAgICAgcGFnZSwgb3IgZXZlbiBjb21wb25lbnQgbGV2ZWwuPC9wPgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+TXVsdGktdGFiIGFuZCB3aW5kb3cgc3VwcG9ydDwvaDM+CisgICAgICAgIDxwPk5vIG1vcmUgcGFpbiB3aGlsZSBrZWVwaW5nIHRhcHMgb24gbXVsdGlwbGUgdGFicyBhbmQgd2luZG93cy4gCisgICAgICAgIFdpY2tldCdzIGF1dG9tYXRpYyBzdGF0ZSBzdG9yYWdlIGVuc3VyZXMgdGhhdCB5b3VyIHVzZXJzIGNhbiBvcGVuIAorICAgICAgICBwYWdlcyBpbiBuZXcgdGFicyBhbmQgd2luZG93cyB3aXRob3V0IGNhdXNpbmcgcHJvYmxlbXMuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImwtdHdvLXRoaXJkIj4KKyAgICAgICAgPGgzPldvcmsgd2l0aCBKYXZhU2NyaXB0IGFuZCBDU1M8L2gzPgorICAgICAgICA8cD5HbG9iYWwgSmF2YVNjcmlwdCBsaWJyYXJpZXMgYW5kIENTUyBzdHlsaW5nIG1peCBwcm9wZXJseSB3aXRoIAorICAgICAgICBjb21wb25lbnQgbG9jYWwgSmF2YVNjcmlwdCBhbmQgQ1NTIHJlc291cmNlcy4gWW91IGNhbiB1c2UgY3VzdG9tIAorICAgICAgICBjb21wb25lbnQgbGlicmFyaWVzIHRoYXQgc2hpcCB3aXRoIGRlZmF1bHQgSmF2YVNjcmlwdCBiZWhhdmlvdXIgYW5kIAorICAgICAgICBDU1Mgc3R5bGluZywgd2l0aG91dCBoYXZpbmcgdG8gZG8gYW55dGhpbmcgeW91cnNlbGYuIENyZWF0aW5nIHN1Y2ggCisgICAgICAgIHNlbGYtY29udGFpbmVkIGNvbXBvbmVudCBsaWJyYXJpZXMgaXMgYXMgZWFzeSBhcyBjcmVhdGluZyBhIEpBUiAKKyAgICAgICAgZmlsZS48L3A+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5UZXN0IHlvdXIgcGFnZXMgYW5kIGNvbXBvbmVudHM8L2gzPgorICAgICAgICA8cD5XaXRoIFdpY2tldFRlc3RlciB5b3UgY2FuIGFjaGlldmUgdGVzdGluZyBjb3ZlcmFnZSB5b3VyIFFBIAorICAgICAgICBkZXBhcnRtZW50IGNhbiBvbmx5IGRyZWFtIG9mLiBUZXN0IHlvdXIgcGFnZXMgd2l0aG91dCBoYXZpbmcgdG8gcnVuIAorICAgICAgICBpbnNpZGUgYSBicm93c2VyLCBvciBzdGFydCBhIGNvbnRhaW5lci4gVGVzdCB5b3VyIGNvbXBvbmVudHMgZGlyZWN0bHksIAorICAgICAgICBjaGVjayB0aGVpciByZW5kZXJlZCBtYXJrdXAgdGFncywgYXR0cmlidXRlcyBhbmQgY29udGVudHMgd2l0aCBlYXNlLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5JbmplY3Rpb24gc3VwcG9ydDwvaDM+CisgICAgICAgIDxwPkluamVjdCB5b3VyIHNlcnZpY2VzIGludG8geW91ciBwYWdlcyBhbmQgY29tcG9uZW50cyB3aXRoIHRoZSAKKyAgICAgICAgdGVjaG5vbG9neSBvZiB5b3VyIGNob29zaW5nOiBXaWNrZXQgcHJvdmlkZXMgaW50ZWdyYXRpb24gd2l0aCBDREkgCisgICAgICAgIChKU1ItMzA1KSwgU3ByaW5nIGFuZCBHdWljZS48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgorICAgICAgICA8aDM+SmF2YUVFIGludGVncmF0aW9uPC9oMz4KKyAgICAgICAgPHA+SWYgeW91IGFyZSB1c2luZyB0aGUgV2ViIHByb2ZpbGUgb2YgSmF2YUVFIDYgb3IgbmV3ZXIsIHlvdSBjYW4gCisgICAgICAgIGxldmVyYWdlIEpQQSwgRUpCcywgQmVhbiBWYWxpZGF0aW9uIGFuZCBDREkgd2l0aCBXaWNrZXQncyBpbnRlZ3JhdGlvbnMgCisgICAgICAgIGZvciB0aGVzZSBzcGVjaWZpY2F0aW9ucy48L3A+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPC9kaXY+Cis8aHIgLz4KKworBjoGRVQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4IGIvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi9mNS9lNTViMTY1ZDhlZTlkMGFiMGI5ODRiNzc3Y2I3YmM4YTEwYjNkZmNkYTZiMWM5NjA4NTg0OTQxNDFhMjZjNgpzaW1pbGFyaXR5IGluZGV4IDk2JQpjb3B5IGZyb20gLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOApjb3B5IHRvIC5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vZjUvZTU1YjE2NWQ4ZWU5ZDBhYjBiOTg0Yjc3N2NiN2JjOGExMGIzZGZjZGE2YjFjOTYwODU4NDk0MTQxYTI2YzYKaW5kZXggZjYzMWU0Yi4uZWZkNTEzMyAxMDA2NDQKLS0tIGEvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi8wOS84ZjQwNjA5NzM1ZGQ4YTI1YjFkOTQzOWVmYTJiOGQ1ZGM0ZmRkZTA0MzBlNGIyODE0NGY2MWMyMTUwMjZhOAorKysgYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duL2Y1L2U1NWIxNjVkOGVlOWQwYWIwYjk4NGI3NzdjYjdiYzhhMTBiM2RmY2RhNmIxYzk2MDg1ODQ5NDE0MWEyNmM2CkBAIC0xLDUgKzEsNiBAQAotBAhJIgJyPTxkaXYgY2xhc3M9ImwtZnVsbCBsLWZpcnN0IHByZWFtYmxlIj4KKwQISSICFD48ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CiAgICAgPGgxIGlkPSJpbnRyb2R1Y3Rpb24iPkFubm91bmNpbmcgQXBhY2hlJm5ic3A7V2lja2V0Jm5ic3A7ODogV3JpdGUgTGVzcywgQWNoaWV2ZSBNb3JlPC9oMT4KKyAgICA8cD48aW1nIHNyYz0iL2ltZy9sb2dvLnN2ZyIgYWx0PSJBcGFjaGUgV2lja2V0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgLz48L3A+CiAgICAgPHA+CiAgICAgICBUaGUgQXBhY2hlIFdpY2tldCBwcm9qZWN0IGFubm91bmNlcyB0aGUgOHRoIG1ham9yIHJlbGVhc2Ugb2YgdGhlIG9wZW4gc291cmNlIEphdmEgd2ViIGZyYW1ld29yayBzZXJ2aWNpbmcgd2Vic2l0ZXMgYW5kIGFwcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGdsb2JlIGZvciBvdmVyIGEgZGVjYWRlLiBXaXRoIHRoaXMgcmVsZWFzZSBXaWNrZXQgZW1icmFjZXMgSmF2YSA4IGlkaW9tcyBmdWxseSwgYWxsb3dpbmcgdGhlIHVzZSBvZiBsYW1iZGEgZXhwcmVzc2lvbnMgaW4gYWxsIHRoZSByaWdodCBwbGFjZXMuIFdpdGggV2lja2V0IDggeW91IGNhbiB3cml0ZSBmZXdlciwgZmFzdGVyIGFuZCBtb3JlIG1haW50YWluYWJsZSBjb2RlLgogICAgIDwvcD4KQEAgLTE3LDcgKzE4LDcgQEAKICAgPC9kaXY+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICA8aDM+SmF2YSA4KyBSZXF1aXJlZDwvaDM+CiAgICAgPHA+CkBAIC00MCw3ICs0MSw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtdHdvLXRoaXJkIj4KICAgICA8aDM+TGFtYmRhcyBpbiBBbGwgVGhlIFJpZ2h0IFBsYWNlczwvaDM+CiAgICAgPHA+CkBAIC01Miw3ICs1Myw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgzPk9wdGlvbmFsIGlzIFNvbWV0aW1lcyBSZXF1aXJlZDwvaDM+CiAgIDwvZGl2PgpAQCAtOTEsNyArOTIsNyBAQAogICA8L2Rpdj4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDM+TW9kZWxzIGFzIEZ1bmN0aW9uYWwgSW50ZXJmYWNlPC9oMz4KICAgICA8cD4KQEAgLTExOCw3ICsxMTksNyBAQAogICA8L2Rpdj4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KICAgICA8aDM+Tm8gUmV3cml0ZSBOZWNlc3Nhcnk8L2gzPgogICAgIDxwPgpAQCAtMTQxLDcgKzE0Miw3IEBACiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CiAgICAgPGgyPkdldHRpbmcgU3RhcnRlZCB3aXRoIFdpY2tldCA4PC9oMj4KICAgICA8cD4KQEAgLTE4OCw3ICsxODksNyBAQAogICAgIHdlYiBhcHBsaWNhdGlvbi48L3A+CiA8L2Rpdj4KIAotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aW1nIHNyYz0iL2ltZy9qYXZhLXdpY2tldC1odG1sNS5wbmciIGNsYXNzPSJsLWZ1bGwiIC8+CiAgICAgICAgIDxoMz5KdXN0IEphdmEgJmFtcDsgSFRNTDwvaDM+CkBAIC0yMTIsNyArMjEzLDcgQEAKICAgICAgICAgb2YgYmFzaWMgQWpheCBjb21wb25lbnRzLjwvcD4KICAgICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aDM+T3BlbiBTb3VyY2Ugd2l0aCBBcGFjaGUgTGljZW5zZTwvaDM+CiAgICAgICAgIDxwPlNpbmNlIGl0cyBpbmNlcHRpb24gaW4gMjAwNCBXaWNrZXQgaGFzIGJlZW4gYW4gb3BlbiBzb3VyY2UKQEAgLTIzNCw3ICsyMzUsNyBAQAogICAgICAgICBwYWdlLCBvciBldmVuIGNvbXBvbmVudCBsZXZlbC48L3A+CiAgICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGgzPk11bHRpLXRhYiBhbmQgd2luZG93IHN1cHBvcnQ8L2gzPgogICAgICAgICA8cD5ObyBtb3JlIHBhaW4gd2hpbGUga2VlcGluZyB0YXBzIG9uIG11bHRpcGxlIHRhYnMgYW5kIHdpbmRvd3MuIApAQCAtMjUxLDcgKzI1Miw3IEBACiAgICAgICAgIGZpbGUuPC9wPgogICAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxoMz5UZXN0IHlvdXIgcGFnZXMgYW5kIGNvbXBvbmVudHM8L2gzPgogICAgICAgICA8cD5XaXRoIFdpY2tldFRlc3RlciB5b3UgY2FuIGFjaGlldmUgdGVzdGluZyBjb3ZlcmFnZSB5b3VyIFFBIApAQCAtMjc0LDQgKzI3NSw2IEBACiA8L2Rpdj4KIDxkaXYgY2xhc3M9ImwtZmlyc3QiPgogPC9kaXY+Cis8aHIgLz4KKwogBjoGRVQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duL2Y3LzVjMzhhM2VlOGM5ZDZjNmZjYjE0ZDlkZTMwODc0ZDg5OGZjOGY5NWU3ODA2Y2NiZGRhNGM4YThhM2Q2ZjZkIGIvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi9mNy81YzM4YTNlZThjOWQ2YzZmY2IxNGQ5ZGUzMDg3NGQ4OThmYzhmOTVlNzgwNmNjYmRkYTRjOGE4YTNkNmY2ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmRjNWZiCi0tLSAvZGV2L251bGwKKysrIGIvLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi9mNy81YzM4YTNlZThjOWQ2YzZmY2IxNGQ5ZGUzMDg3NGQ4OThmYzhmOTVlNzgwNmNjYmRkYTRjOGE4YTNkNmY2ZApAQCAtMCwwICsxLDIxMSBAQAorBAhJIgJQKTxkaXYgY2xhc3M9ImwtZnVsbCBsLWZpcnN0IHByZWFtYmxlIj4KKyAgICA8aDEgaWQ9ImludHJvZHVjdGlvbiI+QW5ub3VuY2luZyBBcGFjaGUmbmJzcDtXaWNrZXQmbmJzcDs4OiBXcml0ZSBMZXNzLCBBY2hpZXZlIE1vcmU8L2gxPgorICAgIDxkaXY+CisgICAgICA8aW1nIHNyYz0iL2ltZy9sb2dvLnN2ZyIgYWx0PSJBcGFjaGUgV2lja2V0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgLz4KKyAgICA8L2Rpdj4KKyAgICA8cD4KKyAgICAgIFRoZSBBcGFjaGUgV2lja2V0IHByb2plY3QgYW5ub3VuY2VzIHRoZSA5dGggbWFqb3IgcmVsZWFzZSBvZiB0aGUgb3BlbiBzb3VyY2UgSmF2YSB3ZWIgZnJhbWV3b3JrIHNlcnZpY2luZyB3ZWJzaXRlcyBhbmQgYXBwbGljYXRpb25zIGFjcm9zcyB0aGUgZ2xvYmUgc2luY2UgMjAwNC4gCisgICAgPC9wPgorICAgIDxwPgorICAgICAgQnVpbHQgb24gdG9wIG9mIEphdmEgMTEsIHRoaXMgdmVyc2lvbiBvZiBXaWNrZXQgYnJpbmdzIHdlYiBkZXZlbG9wbWVudCBpbnRvIHRoZSBtb2Rlcm4gSmF2YSB3b3JsZCwgb2ZmZXJpbmcgYSBmdW5kYW1lbnRhbCB0b29sIHRvIGtlZXAgeW91IGNvZGUgdXAgdG8gZGF0ZSB3aXRoIEphdmEgZXZvbHV0aW9uLgorICAgIDwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCI+CisgIDxkaXYgY2xhc3M9ImwtZnVsbCI+CisgICAgPGgzPkJyaW5nIHRoZSB3ZWIgaW50byB0aGUgbW9kZXJuIEphdmEgZXJhPC9oMz4KKyAgICA8cD4KKyAgICAgVGhlIHJlbGVhc2Ugb2YgSmF2YSA5IGhhcyBiZWVuIGEgdHVybmluZyBwb2ludCBpbiBKYXZhIGhpc3Rvcnkgd2hpY2ggbGFpZCB0aGUgZm91bmRhdGlvbiBmb3IgdGhlIG1vZGVybiBKYXZhIGVyYS4gSG93ZXZlciwgdGhlIG1hZ25pdHVkZSBvZiB0aGlzIGNoYW5nZSBoYXMgZGlzY291cmFnZSBtYW55IGRldmVsb3BlcnMgZnJvbSBsZWF2aW5nIHRoZSBzYWZlIGhhcmJvciByYXBwcmVzZW50ZWQgYnkgSmF2YSA4LiBXaXRoIFdpY2tldCA5IHdlIGZpbmFsbHkgaGF2ZSBhIGZ1bmRhbWVudGFsIHRvb2wgdG8gbW92ZSBvbiBhbmQgYnJpbmcgb3VyIHdlYiBhcHBsaWNhdGlvbiBpbnRvIHRoZSBuZXcgSmF2YSB3b3JsZC4gIAorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIFdpdGggdGhpcyB2ZXJzaW9uIFdpY2tldCBoYXMgYmVlbiBjb21wbGV0ZWQgcmV2aXNpdGVkIGFuZCBpbXByb3ZlZCB0byBlbWJyYWNlIG5ldyB0ZWNobm9sb2dpZXMgbGlrZSBKYXZhIG1vZHVsYXJpemF0aW9uIGFuZCBuZXcgbGlicmFyeSBsaWtlIEpVbml0IDUuCisgICAgPC9wPgorICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIEphdmEgcmVsZWFzZSBjeWNsZTwvaDM+CisgICAgPHA+CisgICAgICBXaXRoIEphdmEgcmVsZWFzaW5nIGF0IGEgZmFzdGVyIHBoYXNlIGl0J3MgaW1wb3J0YW50IHRvIGtlZXAgYSBsaWJyYXJ5IHVwIHRvIGRhdGUgd2l0aCB0aGUgbGFzdGVzdCBjaGFuZ2VzIGludHJvZHVjZWQgaW4gdGhlIHBsYXRmb3JtIGFuZCBlbnN1cmUgaXQgd29ya3Mgd2l0aCB0aGUgbGF0ZXN0IEphdmEgcmVsZWFzZS4gV2lja2V0IGRvZXMgYWxsIG9mIHRoaXMgYnkgdGFraW5nIHBhcnQgdG8gdGhlIDxhIGhyZWY9Imh0dHBzOi8vd2lraS5vcGVuamRrLmphdmEubmV0L2Rpc3BsYXkvcXVhbGl0eS9RdWFsaXR5K091dHJlYWNoIiB0YXJnZXQ9Il9ibGFuayI+T3BlbkpESyBRdWFsaXR5IE91dHJlYWNoPC9hPiwgYW4gaW5pdGlhdGl2ZSBhaW1lZCB0byB0ZXN0IHBvcHVsYXIgT3BlbiBTb3VyY2UgcHJvamVjdHMgd2l0aCBib3RoIHRoZSBsYXRlc3QgT3BlbkpESyByZWxlYXNlIGFuZCB0aGUgRWFybHkgQWNjZXNzIHJlbGVhc2UuCisgICAgPC9wPgorICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+IEJlIHJlYWR5IGZvciB0aGUgbmV4dCBKYXZhIEVudGVycHJpc2U8L2gzPgorICAgIDxwPgorICAgICBTaG9ydGx5IGFmdGVyIEphdmEgOSB3YXMgcmVsZWFzZWQsIE9yYWNsZSBzdWJtaXR0ZWQgSmF2YSBFRSB0byB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLiBBcyBzaWRlIGVmZmVjdCBvZiB0aGlzIG93bmVyIGNoYW5nZSwgdGhlIHBhY2thZ2UgbmFtZSAnamF2YXgnIGhhZCB0byBiZSBtaWdyYXRlIHRvICdqYWthcnRhJy4gV2lja2V0IGhpc3RvcmljYWxseSBwcm9tb3RlZCBkZWN1cGxpbmcgYmV0d2VlbiBKYXZhIEVFIEFQSXMgYW5kIGFwcGxpY2F0aW9uIGNvZGUsIGhlbmNlIG1ha2luZyBtdWNoIG1vcmUgZWFzaWVyIHRoZSB0cmFuc2l0aW9uIHRvIHRoZSBmdXR1cmUgSmF2YSBFbnRlcnByaXNlIHZlcnNpb25zLiAKKyAgICA8L3A+CisgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KKyAgICA8aDM+UHJvdGVjdCB5b3VyIHdlYiBhcHBzIHdpdGggQ29udGVudCBTZWN1cml0eSBQb2xpY3kgKENTUCk8L2gzPgorICAgIDxwPgorICAgICBBcyB0aGUgbnVtYmVyIG9mIHNlY3VyaXR5IHRocmVhdHMgZ3Jvd3MsIGl0J3MgY3J1Y2lhbCBmb3Igd2ViIGFwcGxpY2F0aW9ucyB0byBhZG9wdCB0aGUgbGF0ZXN0IHNlY3VyaXR5IHN0YW5kYXJkcyBhbmQgY291bnRlcm1lYXN1cmVzLiBDU1AgaXMgYSBtb2Rlcm4gc3RhbmRhcmQgdGhhdCBhbGxvd3MgYXBwbGljYXRpb25zIHRvIGRlY2xhcmUgYXBwcm92ZWQgb3JpZ2lucyBvZiBjb250ZW50IChzdWNoIGFzIEphdmFzY3JpcHQsIENTUywgaW1hZ2VzLCBldGMuLi4pIGZvciB0aGUgYnJvd3NlciB0byBsb2FkLiBDb25zdHJ1Y3RpbmcgYSBzYWZlIGFuZCBhdCB0aGUgc2FtZSB0aW1lIGNvbXBsZXRlIENTUCBjYW4gYmUgY2hhbGxlbmdpbmcuIAorICAgICBZb3UgZWl0aGVyIHJpc2sgbGVhdmluZyBob2xlcyBpbiB0aGUgZGVmZW5zZSBvZiB5b3VyIGFwcGxpY2F0aW9uIG9yIHlvdSBicmVhayBjZXJ0YWluIGZ1bmN0aW9uYWxpdHkuIFByb3RlY3RpbmcgYWdhaW5zdCB1bndhbnRlZCBpbmxpbmUgc2NyaXB0cyBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgdGFyZ2V0IHRvIGF0dGFpbi4gSW4gQ1NQIHRoaXMgaXMgY2FsbGVkICd1bnNhZmUtaW5saW5lJyBhbmQgaXQncyB0aGUgbW9zdCBjb21tb24gY2F1c2Ugb2YgY3Jvc3Mtc2l0ZSBzY3JpcHRpbmcgdnVsbmVyYWJpbGl0aWVzLgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgV2lja2V0IDkgY29tZXMgd2l0aCBmdWxsIHN1cHBvcnQgZm9yIENTUCBhbmQgZG9lcyBub3QgbmVlZCBhbnkgdW5zYWZlIGRpcmVjdGl2ZXMuIFdpY2tldCB3aWxsIGF1dG9tYXRpY2FsbHkgYWRkIGEgbm9uY2UgdG8gZXZlcnkgaGVhZGVyIGNvbnRyaWJ1dGlvbiBhbmQgd2hpdGVsaXN0IHRoaXMgbm9uY2UuIFRoaXMgYWxsb3dzIGZvciBmbGV4aWJsZSBsb2FkaW5nIG9mIHJlc291cmNlcyB3aXRob3V0IHRoZSBuZWVkIG9mIGEgY29tcGxleCBDU1AuIE9mIGNvdXJzZSBpdCBpcyBwb3NzaWJsZSB0byBtb2RpZnkgYW5kIGN1c3RvbWl6ZSB0aGUgQ1NQLCBhZGQgYWRkaXRpb25hbCBkaXJlY3RpdmVzIG9yIGRpc2FibGUgaXQgZW50aXJlbHkuIExvb2t1cCBvdXIgJmx0O2EgaHJlZj0iaHR0cDovL3dpY2tldC5hcGFjaGUub3JnL2xlYXJuLyNndWlkZSIgdGFyZ2V0PSJfYmxhbmsiIiZndDtkb2N1bWVudGF0aW9uJmx0Oy9hJmd0OyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gICAgIAorICAgIDwvcD4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5ObyBSZXdyaXRlIE5lY2Vzc2FyeTwvaDM+CisgICAgPHA+CisgICAgICBUaGUgV2lja2V0IHRlYW0gaGFzIGJlZW4gdmVyeSBjYXJlZnVsIG9mIGFkb3B0aW5nIEphdmEgOCB0ZWNobm9sb2dpZXMgYW5kIGFzIHN1Y2ggeW91IGRvbuKAmXQgaGF2ZSB0byByZXdyaXRlIHlvdXIgd2hvbGUgYXBwbGljYXRpb24sIHdoaWxzdCBzdGlsbCByZWFwaW5nIGFsbCB0aGUgYmVuZWZpdHMgb2YgSmF2YSA4LgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIEFzIHRoaXMgaXMgYSBuZXcgbWFqb3IgdmVyc2lvbiB3ZSBoYXZlLCBpbiBhY2NvcmRhbmNlIHdpdGggc2VtYW50aWMgdmVyc2lvbmluZywgY2xlYW5lZCB1cCBtYW55IEFQSXMgYW5kIHlvdSB3aWxsIGdldCBjb21waWxlIGVycm9ycyB3aGVuIHlvdSBtaWdyYXRlIGZyb20gcHJldmlvdXMgV2lja2V0IHZlcnNpb25zLgorICAgIDwvcD4KKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPk1pZ3JhdGluZyB0byBXaWNrZXQgODwvaDM+CisgICAgPHA+CisgICAgICBXaGVuIHlvdSBtaWdyYXRlIGZyb20gYSBwcmV2aW91cyBXaWNrZXQgdmVyc2lvbiB0byBXaWNrZXQgOCwgYSBmdWxsIGxpc3Qgb2YgY2hhbmdlcyBhbmQgbWlncmF0aW9ucyBpcyBhdmFpbGFibGUgYXQgdGhlIGZvbGxvd2luZyBwYWdlOgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIDxhIGhyZWY9Imh0dHBzOi8vcy5hcGFjaGUub3JnL3dpY2tldDhtaWdyYXRlIj5odHRwczovL3MuYXBhY2hlLm9yZy93aWNrZXQ4bWlncmF0ZTwvYT4KKyAgICA8L3A+CisgICAgPHA+CisgICAgICBQbGVhc2UgY29uc3VsdCB0aGlzIG1pZ3JhdGlvbiBndWlkZSB3aGVuIHlvdSBhcmUgbW92aW5nIHRvd2FyZHMgV2lja2V0IDguCisgICAgPC9wPgorICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgorICAgIDxoMj5HZXR0aW5nIFN0YXJ0ZWQgd2l0aCBXaWNrZXQgODwvaDI+CisgICAgPHA+CisgICAgICBJdCBpcyB2ZXJ5IGVhc3kgdG8gZ2V0IHN0YXJ0ZWQgd2l0aCBXaWNrZXQ6IHVzZSBvdXIgPGEgaHJlZj0iL3N0YXJ0L3F1aWNrc3RhcnQuaHRtbCI+cXVpY2stc3RhcnQgd2l6YXJkPC9hPiBvciAKKyAgICAgIHVzZSBvbmUgb2YgdGhlIG9wdGlvbnMgYmVsb3cuCisgICAgPC9wPgorICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+RG93bmxvYWQgdXNpbmcgQXBhY2hlIE1hdmVuPC9oMz4KKyAgICA8cD4KKyAgICAgIFdpdGggQXBhY2hlIE1hdmVuIHVwZGF0ZSB5b3VyIGRlcGVuZGVuY3kgdG8gKGFuZCBkb24ndCBmb3JnZXQgdG8KKyAgICAgIHVwZGF0ZSBhbnkgb3RoZXIgZGVwZW5kZW5jaWVzIG9uIFdpY2tldCBwcm9qZWN0cyB0byB0aGUgc2FtZSB2ZXJzaW9uKToKKyAgICA8L3A+CisKKzxmaWd1cmUgY2xhc3M9ImhpZ2hsaWdodCI+PHByZT48Y29kZSBjbGFzcz0ibGFuZ3VhZ2UteG1sIiBkYXRhLWxhbmc9InhtbCI+PHNwYW4gY2xhc3M9Im50Ij4mbHQ7ZGVwZW5kZW5jeSZndDs8L3NwYW4+CisgICAgPHNwYW4gY2xhc3M9Im50Ij4mbHQ7Z3JvdXBJZCZndDs8L3NwYW4+b3JnLmFwYWNoZS53aWNrZXQ8c3BhbiBjbGFzcz0ibnQiPiZsdDsvZ3JvdXBJZCZndDs8L3NwYW4+CisgICAgPHNwYW4gY2xhc3M9Im50Ij4mbHQ7YXJ0aWZhY3RJZCZndDs8L3NwYW4+d2lja2V0LWNvcmU8c3BhbiBjbGFzcz0ibnQiPiZsdDsvYXJ0aWZhY3RJZCZndDs8L3NwYW4+CisgICAgPHNwYW4gY2xhc3M9Im50Ij4mbHQ7dmVyc2lvbiZndDs8L3NwYW4+OS4wLjAtTTU8c3BhbiBjbGFzcz0ibnQiPiZsdDsvdmVyc2lvbiZndDs8L3NwYW4+Cis8c3BhbiBjbGFzcz0ibnQiPiZsdDsvZGVwZW5kZW5jeSZndDs8L3NwYW4+PC9jb2RlPjwvcHJlPjwvZmlndXJlPgorCisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5Eb3dubG9hZCBzb3VyY2VzL2JpbmFyaWVzIG1hbnVhbGx5PC9oMz4KKyAgICA8cD4KKyAgICAgIE9yIGRvd25sb2FkIGFuZCBidWlsZCB0aGUgZGlzdHJpYnV0aW9uIHlvdXJzZWxmLCBvciB1c2Ugb3VyCisgICAgICBjb252ZW5pZW5jZSBiaW5hcnkgcGFja2FnZQorICAgIDwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+U291cmNlOiA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZHluL2Nsb3Nlci5jZ2kvd2lja2V0LzkuMC4wLU01Ij45LjAuMC1NNSBzb3VyY2UgZG93bmxvYWQ8L2E+PC9saT4KKyAgICAgIDxsaT5CaW5hcnk6IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9keW4vY2xvc2VyLmNnaS93aWNrZXQvOS4wLjAtTTUvYmluYXJpZXMiPjkuMC4wLU01IGJpbmFyeSBkb3dubG9hZDwvYT48L2xpPgorICAgIDwvdWw+CisgIDwvZGl2PgorPC9kaXY+CisKKzxociAvPgorCis8ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CisgICAgPGgxIGlkPSJpbnRyb2R1Y3Rpb24iPkludHJvZHVjaW5nIEFwYWNoZSZuYnNwO1dpY2tldDwvaDE+CisgICAgPHA+SW52ZW50ZWQgaW4gMjAwNCwgV2lja2V0IGlzIG9uZSBvZiB0aGUgZmV3IHN1cnZpdm9ycyBvZiB0aGUgSmF2YQorICAgIHNlcnZlcnNpZGUgd2ViIGZyYW1ld29yayB3YXJzIG9mIHRoZSBtaWQgMjAwMCdzLiBXaWNrZXQgaXMgYW4gb3BlbgorICAgIHNvdXJjZSwgY29tcG9uZW50IG9yaWVudGVkLCBzZXJ2ZXJzaWRlLCBKYXZhIHdlYiBhcHBsaWNhdGlvbiBmcmFtZXdvcmsuCisgICAgV2l0aCBhIGhpc3Rvcnkgb2Ygb3ZlciBhIGRlY2FkZSwgaXQgaXMgc3RpbGwgZ29pbmcgc3Ryb25nIGFuZCBoYXMgYQorICAgIHNvbGlkIGZ1dHVyZSBhaGVhZC4gTGVhcm4gd2h5IHlvdSBzaG91bGQgY29uc2lkZXIgV2lja2V0IGZvciB5b3VyIG5leHQKKyAgICB3ZWIgYXBwbGljYXRpb24uPC9wPgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxpbWcgc3JjPSIvaW1nL2phdmEtd2lja2V0LWh0bWw1LnBuZyIgY2xhc3M9ImwtZnVsbCIgLz4KKyAgICAgICAgPGgzPkp1c3QgSmF2YSAmYW1wOyBIVE1MPC9oMz4KKyAgICAgICAgPHA+TGV2ZXJhZ2Ugd2hhdCB5b3Uga25vdyBhYm91dCBKYXZhIG9yIHlvdXIgZmF2b3VyaXRlIEhUTUwgCisgICAgICAgIGVkaXRvciB0byB3cml0ZSBXaWNrZXQgYXBwbGljYXRpb25zLiBXaXRoIHB1cmUgSmF2YSBjb2RlIGFuZCBIVE1MIAorICAgICAgICBtYXJrdXAgV2lja2V0IGlzIHRoZSBnby10byB3ZWIgZnJhbWV3b3JrIGZvciBwdXJpc3RzLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxpbWcgc3JjPSIvaW1nL3dpY2tldC1zYWZlLnBuZyIgY2xhc3M9ImwtZnVsbCIgLz4KKyAgICAgICAgPGgzPlNlY3VyZSBieSBEZWZhdWx0PC9oMz4KKyAgICAgICAgPHA+VVJMcyBkbyBub3QgZXhwb3NlIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBhbmQgYWxsIGNvbXBvbmVudCBwYXRocyBhcmUKKyAgICAgICAgc2Vzc2lvbi1yZWxhdGl2ZS4gV2lja2V0IGtlZXBzIHlvdXIgbW9kZWwgcHJpdmF0ZSBleGNlcHQgdGhvc2UgcGFydHMKKyAgICAgICAgeW91IGV4cGxpY2l0bHkgZXhwb3NlLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxpbWcgc3JjPSIvaW1nL3dpY2tldC1jb21wb25lbnRzLnBuZyIgY2xhc3M9ImwtZnVsbCIgLz4KKyAgICAgICAgPGgzPkFKQVggQ29tcG9uZW50czwvaDM+CisgICAgICAgIDxwPldyaXRlIEFqYXggYXBwbGljYXRpb25zIHdpdGhvdXQgaGF2aW5nIHRvIHdyaXRlIGEgc2luZ2xlIGxpbmUgCisgICAgICAgIG9mIEphdmFTY3JpcHQgY29kZS4gV2lja2V0J3MgQWpheCBmdW5jdGlvbmFsaXR5IG1ha2VzIGl0IHRyaXZpYWwgCisgICAgICAgIHRvIHVwZGF0ZSBzZWxlY3RlZCBwYXJ0cyBvZiBhIFVJLCBhbmQgY29tZXMgd2l0aCBhIGdyZWF0IHNlbGVjdGlvbiAKKyAgICAgICAgb2YgYmFzaWMgQWpheCBjb21wb25lbnRzLjwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPk9wZW4gU291cmNlIHdpdGggQXBhY2hlIExpY2Vuc2U8L2gzPgorICAgICAgICA8cD5TaW5jZSBpdHMgaW5jZXB0aW9uIGluIDIwMDQgV2lja2V0IGhhcyBiZWVuIGFuIG9wZW4gc291cmNlCisgICAgICAgIHByb2plY3QgYW5kIHJlbWFpbnMgYXZhaWxhYmxlIHVuZGVyIG9uZSBvZiB0aGUgbW9zdCBwZXJtaXNzaXZlCisgICAgICAgIGxpY2Vuc2VzOiB0aGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPk1haW50YWluYWJsZSBjb2RlPC9oMz4KKyAgICAgICAgPHA+UGFnZXMgYW5kIENvbXBvbmVudHMgaW4gV2lja2V0IGFyZSByZWFsIEphdmEgb2JqZWN0cyB0aGF0IHN1cHBvcnQKKyAgICAgICAgZW5jYXBzdWxhdGlvbiwgaW5oZXJpdGFuY2UgYW5kIGV2ZW50cy4gQ3JlYXRlIGhpZ2ggbGV2ZWwgY29tcG9uZW50cworICAgICAgICB3aXRoIGVhc2UgYW5kIGJ1bmRsZSBpdHMgc3R5bGVzaGVldHMsIEphdmFTY3JpcHQgYW5kIG90aGVyIHJlc291cmNlcworICAgICAgICBpbnRvIG9uZSByZXVzYWJsZSBwYWNrYWdlLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5JbnRlcm5hdGlvbmFsaXplZCB0byB0YWtlIG9uIHRoZSB3b3JsZDwvaDM+CisgICAgICAgIDxwPldpdGggc3VwcG9ydCBvZiBvdmVyIDI1IGxhbmd1YWdlcyBvdXQtb2YtdGhlLWJveCwgV2lja2V0IGxldCdzIAorICAgICAgICB5b3UgZ2V0IHN0YXJ0ZWQgaW4geW91ciBvd24gbGFuZ3VhZ2UsIG9yIGEgc2Vjb25kIGxhbmd1YWdlIHdpdGggbm8gCisgICAgICAgIGVmZm9ydC4gWW91IGNhbiBwcm92aWRlIGFsdGVybmF0aXZlIGxhbmd1YWdlcyBvbiB0aGUgYXBwbGljYXRpb24sIAorICAgICAgICBwYWdlLCBvciBldmVuIGNvbXBvbmVudCBsZXZlbC48L3A+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5NdWx0aS10YWIgYW5kIHdpbmRvdyBzdXBwb3J0PC9oMz4KKyAgICAgICAgPHA+Tm8gbW9yZSBwYWluIHdoaWxlIGtlZXBpbmcgdGFwcyBvbiBtdWx0aXBsZSB0YWJzIGFuZCB3aW5kb3dzLiAKKyAgICAgICAgV2lja2V0J3MgYXV0b21hdGljIHN0YXRlIHN0b3JhZ2UgZW5zdXJlcyB0aGF0IHlvdXIgdXNlcnMgY2FuIG9wZW4gCisgICAgICAgIHBhZ2VzIGluIG5ldyB0YWJzIGFuZCB3aW5kb3dzIHdpdGhvdXQgY2F1c2luZyBwcm9ibGVtcy48L3A+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibC10d28tdGhpcmQiPgorICAgICAgICA8aDM+V29yayB3aXRoIEphdmFTY3JpcHQgYW5kIENTUzwvaDM+CisgICAgICAgIDxwPkdsb2JhbCBKYXZhU2NyaXB0IGxpYnJhcmllcyBhbmQgQ1NTIHN0eWxpbmcgbWl4IHByb3Blcmx5IHdpdGggCisgICAgICAgIGNvbXBvbmVudCBsb2NhbCBKYXZhU2NyaXB0IGFuZCBDU1MgcmVzb3VyY2VzLiBZb3UgY2FuIHVzZSBjdXN0b20gCisgICAgICAgIGNvbXBvbmVudCBsaWJyYXJpZXMgdGhhdCBzaGlwIHdpdGggZGVmYXVsdCBKYXZhU2NyaXB0IGJlaGF2aW91ciBhbmQgCisgICAgICAgIENTUyBzdHlsaW5nLCB3aXRob3V0IGhhdmluZyB0byBkbyBhbnl0aGluZyB5b3Vyc2VsZi4gQ3JlYXRpbmcgc3VjaCAKKyAgICAgICAgc2VsZi1jb250YWluZWQgY29tcG9uZW50IGxpYnJhcmllcyBpcyBhcyBlYXN5IGFzIGNyZWF0aW5nIGEgSkFSIAorICAgICAgICBmaWxlLjwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPlRlc3QgeW91ciBwYWdlcyBhbmQgY29tcG9uZW50czwvaDM+CisgICAgICAgIDxwPldpdGggV2lja2V0VGVzdGVyIHlvdSBjYW4gYWNoaWV2ZSB0ZXN0aW5nIGNvdmVyYWdlIHlvdXIgUUEgCisgICAgICAgIGRlcGFydG1lbnQgY2FuIG9ubHkgZHJlYW0gb2YuIFRlc3QgeW91ciBwYWdlcyB3aXRob3V0IGhhdmluZyB0byBydW4gCisgICAgICAgIGluc2lkZSBhIGJyb3dzZXIsIG9yIHN0YXJ0IGEgY29udGFpbmVyLiBUZXN0IHlvdXIgY29tcG9uZW50cyBkaXJlY3RseSwgCisgICAgICAgIGNoZWNrIHRoZWlyIHJlbmRlcmVkIG1hcmt1cCB0YWdzLCBhdHRyaWJ1dGVzIGFuZCBjb250ZW50cyB3aXRoIGVhc2UuPC9wPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KKyAgICAgICAgPGgzPkluamVjdGlvbiBzdXBwb3J0PC9oMz4KKyAgICAgICAgPHA+SW5qZWN0IHlvdXIgc2VydmljZXMgaW50byB5b3VyIHBhZ2VzIGFuZCBjb21wb25lbnRzIHdpdGggdGhlIAorICAgICAgICB0ZWNobm9sb2d5IG9mIHlvdXIgY2hvb3Npbmc6IFdpY2tldCBwcm92aWRlcyBpbnRlZ3JhdGlvbiB3aXRoIENESSAKKyAgICAgICAgKEpTUi0zMDUpLCBTcHJpbmcgYW5kIEd1aWNlLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CisgICAgICAgIDxoMz5KYXZhRUUgaW50ZWdyYXRpb248L2gzPgorICAgICAgICA8cD5JZiB5b3UgYXJlIHVzaW5nIHRoZSBXZWIgcHJvZmlsZSBvZiBKYXZhRUUgNiBvciBuZXdlciwgeW91IGNhbiAKKyAgICAgICAgbGV2ZXJhZ2UgSlBBLCBFSkJzLCBCZWFuIFZhbGlkYXRpb24gYW5kIENESSB3aXRoIFdpY2tldCdzIGludGVncmF0aW9ucyAKKyAgICAgICAgZm9yIHRoZXNlIHNwZWNpZmljYXRpb25zLjwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8L2Rpdj4KKzxociAvPgorCisGOgZFVApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vMDkvOGY0MDYwOTczNWRkOGEyNWIxZDk0MzllZmEyYjhkNWRjNGZkZGUwNDMwZTRiMjgxNDRmNjFjMjE1MDI2YTggYi8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duL2ZhL2QzYTAyYTBlZjUzYWU2ODRjM2E4NTJiN2FlYWJmNTM0NDY0ZWJhN2RjNjU5OWYwYWVjZjUxZjk0OTkzY2FiCnNpbWlsYXJpdHkgaW5kZXggODclCmNvcHkgZnJvbSAuamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4CmNvcHkgdG8gLmpla3lsbC1jYWNoZS9KZWt5bGwvQ2FjaGUvSmVreWxsLS1Db252ZXJ0ZXJzLS1NYXJrZG93bi9mYS9kM2EwMmEwZWY1M2FlNjg0YzNhODUyYjdhZWFiZjUzNDQ2NGViYTdkYzY1OTlmMGFlY2Y1MWY5NDk5M2NhYgppbmRleCBmNjMxZTRiLi4xNjJiYjZjIDEwMDY0NAotLS0gYS8uamVreWxsLWNhY2hlL0pla3lsbC9DYWNoZS9KZWt5bGwtLUNvbnZlcnRlcnMtLU1hcmtkb3duLzA5LzhmNDA2MDk3MzVkZDhhMjViMWQ5NDM5ZWZhMmI4ZDVkYzRmZGRlMDQzMGU0YjI4MTQ0ZjYxYzIxNTAyNmE4CisrKyBiLy5qZWt5bGwtY2FjaGUvSmVreWxsL0NhY2hlL0pla3lsbC0tQ29udmVydGVycy0tTWFya2Rvd24vZmEvZDNhMDJhMGVmNTNhZTY4NGMzYTg1MmI3YWVhYmY1MzQ0NjRlYmE3ZGM2NTk5ZjBhZWNmNTFmOTQ5OTNjYWIKQEAgLTEsNDYgKzEsNDAgQEAKLQQISSICcj08ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CisECEkiAjQ+PGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgogICAgIDxoMSBpZD0iaW50cm9kdWN0aW9uIj5Bbm5vdW5jaW5nIEFwYWNoZSZuYnNwO1dpY2tldCZuYnNwOzg6IFdyaXRlIExlc3MsIEFjaGlldmUgTW9yZTwvaDE+CisgICAgPGRpdj4KKyAgICAgIDxpbWcgc3JjPSIvaW1nL2xvZ28uc3ZnIiBhbHQ9IkFwYWNoZSBXaWNrZXQiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiAvPgorICAgIDwvZGl2PgogICAgIDxwPgotICAgICAgVGhlIEFwYWNoZSBXaWNrZXQgcHJvamVjdCBhbm5vdW5jZXMgdGhlIDh0aCBtYWpvciByZWxlYXNlIG9mIHRoZSBvcGVuIHNvdXJjZSBKYXZhIHdlYiBmcmFtZXdvcmsgc2VydmljaW5nIHdlYnNpdGVzIGFuZCBhcHBsaWNhdGlvbnMgYWNyb3NzIHRoZSBnbG9iZSBmb3Igb3ZlciBhIGRlY2FkZS4gV2l0aCB0aGlzIHJlbGVhc2UgV2lja2V0IGVtYnJhY2VzIEphdmEgOCBpZGlvbXMgZnVsbHksIGFsbG93aW5nIHRoZSB1c2Ugb2YgbGFtYmRhIGV4cHJlc3Npb25zIGluIGFsbCB0aGUgcmlnaHQgcGxhY2VzLiBXaXRoIFdpY2tldCA4IHlvdSBjYW4gd3JpdGUgZmV3ZXIsIGZhc3RlciBhbmQgbW9yZSBtYWludGFpbmFibGUgY29kZS4KKyAgICAgIFRoZSBBcGFjaGUgV2lja2V0IHByb2plY3QgYW5ub3VuY2VzIHRoZSA5dGggbWFqb3IgcmVsZWFzZSBvZiB0aGUgb3BlbiBzb3VyY2UgSmF2YSB3ZWIgZnJhbWV3b3JrIHNlcnZpY2luZyB3ZWJzaXRlcyBhbmQgYXBwbGljYXRpb25zIGFjcm9zcyB0aGUgZ2xvYmUgc2luY2UgMjAwNC4gQnVpbHQgb24gdG9wIG9mIEphdmEgMTEsIHRoaXMgdmVyc2lvbiBvZiBXaWNrZXQgYnJpbmdzIHdlYiBkZXZlbG9wbWVudCBpbnRvIHRoZSBtb2Rlcm4gSmF2YSB3b3JsZCwgb2ZmZXJpbmcgYSBmdW5kYW1lbnRhbCB0b29sIHRvIGtlZXAgeW91IGNvZGUgdXAgdG8gZGF0ZSB3aXRoIEphdmEgZXZvbHV0aW9uLgogICAgIDwvcD4KIDwvZGl2PgogPGRpdiBjbGFzcz0ibC1maXJzdCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+Ci0gICAgPGgzPkEgQ2FyZWZ1bCBBcHBsaWNhdGlvbiBvZiBKYXZhIDg8L2gzPgotCisgICAgPGgzPkJyaW5nIHRoZSB3ZWIgaW50byB0aGUgbW9kZXJuIEphdmEgZXJhPC9oMz4KICAgICA8cD4KLSAgICAgIFdoaWxlIHByZXZpb3VzIHZlcnNpb25zIG9mIFdpY2tldCB3b3JrIHdlbGwgd2l0aCBKYXZhIDggYW5kIGJleW9uZCwgdGhlIFdpY2tldCBBUEkgd2FzIG5vdCBvcHRpbWl6ZWQgdG8gbWFrZSBmdWxsIHVzZSBvZiBKYXZhIDggaWRpb21zLiBBZnRlciBjYXJlZnVsIGNvbnNpZGVyYXRpb24gYW5kIHRyeWluZyBtYW55IHBhdGhzIHRvIGFkb3B0IG5ldyB3YXlzIG9mIGNvbWJpbmluZyBKYXZhIDggYW5kIFdpY2tldCwgd2UgZmluYWxseSBzZXR0bGVkIG9uIHRoZSBjdXJyZW50IEFQSS4KKyAgICAgVGhlIHJlbGVhc2Ugb2YgSmF2YSA5IGhhcyBiZWVuIGEgdHVybmluZyBwb2ludCBpbiBKYXZhIGhpc3Rvcnkgd2hpY2ggbGFpZCB0aGUgZm91bmRhdGlvbiBmb3IgdGhlIG1vZGVybiBKYXZhIGVyYS4gSG93ZXZlciwgdGhlIG1hZ25pdHVkZSBvZiB0aGlzIGNoYW5nZSBoYXMgZGlzY291cmFnZSBtYW55IGRldmVsb3BlcnMgZnJvbSBsZWF2aW5nIHRoZSBzYWZlIGhhcmJvciByYXBwcmVzZW50ZWQgYnkgSmF2YSA4LiBXaXRoIFdpY2tldCA5IHdlIGZpbmFsbHkgaGF2ZSBhIGZ1bmRhbWVudGFsIHRvb2wgdG8gbW92ZSBvbiBhbmQgYnJpbmcgb3VyIHdlYiBhcHBsaWNhdGlvbiBpbnRvIHRoZSBuZXcgSmF2YSB3b3JsZC4gIAogICAgIDwvcD4KICAgICA8cD4KLSAgICAgIEphdmEgOOKAmXMgbmV3IGlkaW9tcyBhbmQgdHlwZXMgaGF2ZSBiZWVuIGFwcGxpZWQgdGhyb3VnaG91dCBXaWNrZXTigJlzIEFQSS4gTGVhcm4gbW9yZSBhYm91dCB0aGUgZGV0YWlscyBiZWxvdy4KKyAgICAgIFdpdGggdGhpcyB2ZXJzaW9uIFdpY2tldCBoYXMgYmVlbiBjb21wbGV0ZWQgcmV2aXNpdGVkIGFuZCBpbXByb3ZlZCB0byBlbWJyYWNlIG5ldyB0ZWNobm9sb2dpZXMgbGlrZSBKYXZhIG1vZHVsYXJpemF0aW9uIGFuZCBuZXcgbGlicmFyeSBsaWtlIEpVbml0IDUuCiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KLSAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgotICAgIDxoMz5KYXZhIDgrIFJlcXVpcmVkPC9oMz4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+U3RheSB1cCB0byBkYXRlIHdpdGggSmF2YSByZWxlYXNlIGN5Y2xlPC9oMz4KICAgICA8cD4KLSAgICAgIFN0YXJ0aW5nIHdpdGggV2lja2V0IDggdGhlIG1pbmltdW0gcmVxdWlyZWQgdmVyc2lvbiBvZiBKYXZhIGlzIEphdmEgOC4gQWxsIFdpY2tldCBzdXBwbGllZCBwcm9qZWN0cyBoYXZlIGJlZW4gdXBncmFkZWQgdG8gSmF2YSA4IGFuZCBXaWNrZXQgOCwgYW5kIHNob3J0bHkgYWxsIGFjdGl2ZSBjb21tdW5pdHkgcHJvamVjdHMsIHN1Y2ggYXMgV2lja2V0IFN0dWZmLCB3aWxsIGZvbGxvdyBzdWl0LgotICAgIDwvcD4KLSAgICA8cD4KLSAgICAgIFdpdGggdGhlIGFkb3B0aW9uIG9mIEphdmEgOCB3ZSB3ZXJlIGFibGUgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciBMYW1iZGFzLgorICAgICAgV2l0aCBKYXZhIHJlbGVhc2luZyBhdCBhIGZhc3RlciBwaGFzZSBpdCdzIGltcG9ydGFudCB0byBrZWVwIGEgbGlicmFyeSB1cCB0byBkYXRlIHdpdGggdGhlIGxhc3Rlc3QgY2hhbmdlcyBpbnRyb2R1Y2VkIGluIHRoZSBwbGF0Zm9ybSBhbmQgZW5zdXJlIGl0IHdvcmtzIHdpdGggdGhlIGxhdGVzdCBKYXZhIHJlbGVhc2UuIFdpY2tldCBkb2VzIGFsbCBvZiB0aGlzIGJ5IHRha2luZyBwYXJ0IHRvIHRoZSBbT3BlbkpESyBRdWFsaXR5IE91dHJlYWNoXShodHRwczovL3dpa2kub3Blbmpkay5qYXZhLm5ldC9kaXNwbGF5L3F1YWxpdHkvUXVhbGl0eStPdXRyZWFjaCksIGFuIGluaXRpYXRpdmUgYWltZWQgdG8gdGVzdCBwb3B1bGFyIE9wZW4gU291cmNlIHByb2plY3RzIHdpdGggYm90aCB0aGUgbGF0ZXN0IE9wZW5KREsgcmVsZWFzZSBhbmQgdGhlIEVhcmx5IEFjY2VzcyByZWxlYXNlLgogICAgIDwvcD4KICAgPC9kaXY+Ci0gIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KLSAgICA8aDM+U2VydmxldCAzLjEgUmVxdWlyZWQ8L2gzPgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz4gQmUgcmVhZHkgZm9yIHRoZSBuZXh0IEphdmEgRW50ZXJwcmlzZTwvaDM+CiAgICAgPHA+CiAgICAgICBBcyBvZiBXaWNrZXQgOCB3ZSBvbmx5IHN1cHBvcnQgdGhlIEphdmEgU2VydmxldCBBUEkgMy4xIChvciBuZXdlcikuIFRoaXMgbWVhbnMgdGhhdCB0byBydW4gYXBwbGljYXRpb25zIGJ1aWx0IHVzaW5nIFdpY2tldCA4IHlvdSBoYXZlIHRvIHJ1biB5b3VyIGFwcGxpY2F0aW9uIGluIGEgbW9kZXJuIHNlcnZlciBsaWtlIFRvbWNhdCA4LngsIEpldHR5IDkuMSsgb3IgYSBKYXZhIEVFIDcgY29tcGF0aWJsZSBzZXJ2ZXIuCiAgICAgPC9wPgogICA8L2Rpdj4KLSAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgotICAgIDxoMz5KYXZhIERhdGUvVGltZSBBUEk8L2gzPgotICAgIDxwPgotICAgICAgV2lja2V0IDggcHJvdmlkZXMgb3V0LW9mLXRoZS1ib3ggc3VwcG9ydCBmb3IgdGhlIG5ldyB0eXBlcyBmb3IgaGFuZGxpbmcgZGF0ZXMgaW4gSmF2YSA4LiBUaGVzZSBjYW4gYmUgY29udmVydGVkLCB2YWxpZGF0ZWQgYW5kIGJvdW5kIHRvIGNvbXBvbmVudHMuCi0gICAgPC9wPgotICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+CisKKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC10d28tdGhpcmQiPgogICAgIDxoMz5MYW1iZGFzIGluIEFsbCBUaGUgUmlnaHQgUGxhY2VzPC9oMz4KICAgICA8cD4KQEAgLTUyLDcgKzQ2LDcgQEAKICAgICA8L3A+CiAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDM+T3B0aW9uYWwgaXMgU29tZXRpbWVzIFJlcXVpcmVkPC9oMz4KICAgPC9kaXY+CkBAIC05MSw3ICs4NSw3IEBACiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgogICAgIDxoMz5Nb2RlbHMgYXMgRnVuY3Rpb25hbCBJbnRlcmZhY2U8L2gzPgogICAgIDxwPgpAQCAtMTE4LDcgKzExMiw3IEBACiAgIDwvZGl2PgogPC9kaXY+CiAKLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgogICAgIDxoMz5ObyBSZXdyaXRlIE5lY2Vzc2FyeTwvaDM+CiAgICAgPHA+CkBAIC0xNDEsNyArMTM1LDcgQEAKICAgICA8L3A+CiAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KICAgICA8aDI+R2V0dGluZyBTdGFydGVkIHdpdGggV2lja2V0IDg8L2gyPgogICAgIDxwPgpAQCAtMTg4LDcgKzE4Miw3IEBACiAgICAgd2ViIGFwcGxpY2F0aW9uLjwvcD4KIDwvZGl2PgogCi08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2phdmEtd2lja2V0LWh0bWw1LnBuZyIgY2xhc3M9ImwtZnVsbCIgLz4KICAgICAgICAgPGgzPkp1c3QgSmF2YSAmYW1wOyBIVE1MPC9oMz4KQEAgLTIxMiw3ICsyMDYsNyBAQAogICAgICAgICBvZiBiYXNpYyBBamF4IGNvbXBvbmVudHMuPC9wPgogICAgIDwvZGl2PgogPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KKzxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KICAgICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+CiAgICAgICAgIDxoMz5PcGVuIFNvdXJjZSB3aXRoIEFwYWNoZSBMaWNlbnNlPC9oMz4KICAgICAgICAgPHA+U2luY2UgaXRzIGluY2VwdGlvbiBpbiAyMDA0IFdpY2tldCBoYXMgYmVlbiBhbiBvcGVuIHNvdXJjZQpAQCAtMjM0LDcgKzIyOCw3IEBACiAgICAgICAgIHBhZ2UsIG9yIGV2ZW4gY29tcG9uZW50IGxldmVsLjwvcD4KICAgICA8L2Rpdj4KIDwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCI+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgICAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgogICAgICAgICA8aDM+TXVsdGktdGFiIGFuZCB3aW5kb3cgc3VwcG9ydDwvaDM+CiAgICAgICAgIDxwPk5vIG1vcmUgcGFpbiB3aGlsZSBrZWVwaW5nIHRhcHMgb24gbXVsdGlwbGUgdGFicyBhbmQgd2luZG93cy4gCkBAIC0yNTEsNyArMjQ1LDcgQEAKICAgICAgICAgZmlsZS48L3A+CiAgICAgPC9kaXY+CiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QiPgorPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICAgIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KICAgICAgICAgPGgzPlRlc3QgeW91ciBwYWdlcyBhbmQgY29tcG9uZW50czwvaDM+CiAgICAgICAgIDxwPldpdGggV2lja2V0VGVzdGVyIHlvdSBjYW4gYWNoaWV2ZSB0ZXN0aW5nIGNvdmVyYWdlIHlvdXIgUUEgCkBAIC0yNzQsNCArMjY4LDYgQEAKIDwvZGl2PgogPGRpdiBjbGFzcz0ibC1maXJzdCI+CiA8L2Rpdj4KKzxociAvPgorCiAGOgZFVApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRlbnQvYXRvbS54bWwgYi9jb250ZW50L2F0b20ueG1sCmluZGV4IGM1NjdhMmQuLjg0Yzc4YTQgMTAwNjQ0Ci0tLSBhL2NvbnRlbnQvYXRvbS54bWwKKysrIGIvY29udGVudC9hdG9tLnhtbApAQCAtMyw3ICszLDcgQEAKICAgICA8dGl0bGU+QXBhY2hlIFdpY2tldDwvdGl0bGU+CiAgICAgPGxpbmsgaHJlZj0iaHR0cDovL3dpY2tldC5hcGFjaGUub3JnL2F0b20ueG1sIiByZWw9InNlbGYiLz4KICAgICA8bGluayBocmVmPSJodHRwOi8vd2lja2V0LmFwYWNoZS5vcmcvIi8+Ci0gICAgPHVwZGF0ZWQ+MjAyMC0wNi0yNFQyMTo0NzowNSswMjowMDwvdXBkYXRlZD4KKyAgICA8dXBkYXRlZD4yMDIwLTA2LTI1VDEyOjE0OjA2KzAyOjAwPC91cGRhdGVkPgogICAgIDxpZD5odHRwOi8vd2lja2V0LmFwYWNoZS5vcmcvPC9pZD4KICAgICA8YXV0aG9yPgogICAgICAgICA8bmFtZT5BcGFjaGUgV2lja2V0PC9uYW1lPgpkaWZmIC0tZ2l0IGEvY29udGVudC9pbmRleC5odG1sIGIvY29udGVudC9pbmRleC5odG1sCmluZGV4IDhiYTkzYjMuLmJiMDZiMWMgMTAwNjQ0Ci0tLSBhL2NvbnRlbnQvaW5kZXguaHRtbAorKysgYi9jb250ZW50L2luZGV4Lmh0bWwKQEAgLTMsNyArMyw3IEBACiAgICAgPGhlYWQ+CiAgICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSxjaHJvbWU9MSI+CiAgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICAgICAgPHRpdGxlPkhvbWUgfCBBcGFjaGUgV2lja2V0PC90aXRsZT4KKyAgICAgICAgPHRpdGxlPiB8IEFwYWNoZSBXaWNrZXQ8L3RpdGxlPgogICAgICAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiIC8+CiAKICAgICAgICAgPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIvZmF2aWNvbi5pY28iIHR5cGU9ImltYWdlL3ZuZC5taWNyb3NvZnQuaWNvbiIgLz4KQEAgLTExLDYgKzExLDEwIEBACiAgICAgICAgIDxsaW5rIGhyZWY9Ii8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNy4wL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiAvPgogCiAJCTxzY3JpcHQgc3JjPSIvL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMS4xMS4zLm1pbi5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii8vY2RuLmpzZGVsaXZyLm5ldC9qcXVlcnkuc2xpY2svMS41LjUvc2xpY2suY3NzIi8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIvL2Nkbi5qc2RlbGl2ci5uZXQvanF1ZXJ5LnNsaWNrLzEuNS41L3NsaWNrLXRoZW1lLmNzcyIvPgorCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvL2Nkbi5qc2RlbGl2ci5uZXQvanF1ZXJ5LnNsaWNrLzEuNS41L3NsaWNrLm1pbi5qcyI+PC9zY3JpcHQ+CiAKICAgICA8L2hlYWQ+CiAgICAgPGJvZHkgY2xhc3M9ImluZGV4Ij4KQEAgLTEwNywxMzEgKzExMSw2MyBAQAogPG1haW4+CiAgICAgPGRpdiBjbGFzcz0ibC1jb250YWluZXIiPgogICAgICAgICA8aGVhZGVyIGNsYXNzPSJsLWZ1bGwgcHJlYW1ibGUiPgotICAgICAgICAgICAgPGgxPkhvbWU8L2gxPgorICAgICAgICAgICAgPGgxPjwvaDE+CiAgICAgICAgICAgICAKICAgICAgICAgICAgIAogICAgICAgICAgICAgCiAgICAgICAgIDwvaGVhZGVyPgogICAgICAgICA8c2VjdGlvbiBjbGFzcz0idG9jIGxlZnQiPgotICAgICAgICAgICAgPGRpdiBpZD0idG9jIiBjbGFzcz0idG9jIj48ZGl2IGlkPSJ0b2MtdGl0bGUiPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PC9kaXY+PHVsPjxsaSBjbGFzcz0idG9jLS1sZXZlbC0xIHRvYy0tc2VjdGlvbi0xIj48YSBocmVmPSIjIj48c3BhbiBjbGFzcz0idG9jLW51bWJlciI+MTwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvYy10ZXh0Ij5HZXR0aW5nIFN0YXJ0ZWQgd2l0aCBXaWNrZXQgODwvc3Bhbj48L2E+PC9saT48L3VsPjwvZGl2PgorICAgICAgICAgICAgPGRpdiBpZD0idG9jIiBjbGFzcz0idG9jIj48ZGl2IGlkPSJ0b2MtdGl0bGUiPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PC9kaXY+PHVsPjxsaSBjbGFzcz0idG9jLS1sZXZlbC0xIHRvYy0tc2VjdGlvbi0xIj48YSBocmVmPSIjIj48c3BhbiBjbGFzcz0idG9jLW51bWJlciI+MTwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvYy10ZXh0Ij5HZXR0aW5nIFN0YXJ0ZWQgd2l0aCBXaWNrZXQgOTwvc3Bhbj48L2E+PC9saT48L3VsPjwvZGl2PgogICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgIDxzZWN0aW9uPgogICAgICAgICAgICAgPGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgogICAgIDxoMSBpZD0iaW50cm9kdWN0aW9uIj5Bbm5vdW5jaW5nIEFwYWNoZSZuYnNwO1dpY2tldCZuYnNwOzg6IFdyaXRlIExlc3MsIEFjaGlldmUgTW9yZTwvaDE+CisgICAgPGRpdj4KKyAgICAgIDxpbWcgc3JjPSIvaW1nL2xvZ28uc3ZnIiBhbHQ9IkFwYWNoZSBXaWNrZXQiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiAvPgorICAgIDwvZGl2PgogICAgIDxwPgotICAgICAgVGhlIEFwYWNoZSBXaWNrZXQgcHJvamVjdCBhbm5vdW5jZXMgdGhlIDh0aCBtYWpvciByZWxlYXNlIG9mIHRoZSBvcGVuIHNvdXJjZSBKYXZhIHdlYiBmcmFtZXdvcmsgc2VydmljaW5nIHdlYnNpdGVzIGFuZCBhcHBsaWNhdGlvbnMgYWNyb3NzIHRoZSBnbG9iZSBmb3Igb3ZlciBhIGRlY2FkZS4gV2l0aCB0aGlzIHJlbGVhc2UgV2lja2V0IGVtYnJhY2VzIEphdmEgOCBpZGlvbXMgZnVsbHksIGFsbG93aW5nIHRoZSB1c2Ugb2YgbGFtYmRhIGV4cHJlc3Npb25zIGluIGFsbCB0aGUgcmlnaHQgcGxhY2VzLiBXaXRoIFdpY2tldCA4IHlvdSBjYW4gd3JpdGUgZmV3ZXIsIGZhc3RlciBhbmQgbW9yZSBtYWludGFpbmFibGUgY29kZS4KKyAgICAgIFRoZSBBcGFjaGUgV2lja2V0IHByb2plY3QgYW5ub3VuY2VzIHRoZSA5dGggbWFqb3IgcmVsZWFzZSBvZiB0aGUgb3BlbiBzb3VyY2UgSmF2YSB3ZWIgZnJhbWV3b3JrIHNlcnZpY2luZyB3ZWJzaXRlcyBhbmQgYXBwbGljYXRpb25zIGFjcm9zcyB0aGUgZ2xvYmUgc2luY2UgMjAwNC4gCisgICAgPC9wPgorICAgIDxwPgorICAgICAgQnVpbHQgb24gdG9wIG9mIEphdmEgMTEsIHRoaXMgdmVyc2lvbiBvZiBXaWNrZXQgYnJpbmdzIHdlYiBkZXZlbG9wbWVudCBpbnRvIHRoZSBtb2Rlcm4gSmF2YSB3b3JsZCwgb2ZmZXJpbmcgYSBmdW5kYW1lbnRhbCB0b29sIHRvIGtlZXAgeW91IGNvZGUgdXAgdG8gZGF0ZSB3aXRoIEphdmEgZXZvbHV0aW9uLgogICAgIDwvcD4KIDwvZGl2PgogPGRpdiBjbGFzcz0ibC1maXJzdCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+Ci0gICAgPGgzPkEgQ2FyZWZ1bCBBcHBsaWNhdGlvbiBvZiBKYXZhIDg8L2gzPgotCisgICAgPGgzPkJyaW5nIHRoZSB3ZWIgaW50byB0aGUgbW9kZXJuIEphdmEgZXJhPC9oMz4KICAgICA8cD4KLSAgICAgIFdoaWxlIHByZXZpb3VzIHZlcnNpb25zIG9mIFdpY2tldCB3b3JrIHdlbGwgd2l0aCBKYXZhIDggYW5kIGJleW9uZCwgdGhlIFdpY2tldCBBUEkgd2FzIG5vdCBvcHRpbWl6ZWQgdG8gbWFrZSBmdWxsIHVzZSBvZiBKYXZhIDggaWRpb21zLiBBZnRlciBjYXJlZnVsIGNvbnNpZGVyYXRpb24gYW5kIHRyeWluZyBtYW55IHBhdGhzIHRvIGFkb3B0IG5ldyB3YXlzIG9mIGNvbWJpbmluZyBKYXZhIDggYW5kIFdpY2tldCwgd2UgZmluYWxseSBzZXR0bGVkIG9uIHRoZSBjdXJyZW50IEFQSS4KKyAgICAgVGhlIHJlbGVhc2Ugb2YgSmF2YSA5IGhhcyBiZWVuIGEgdHVybmluZyBwb2ludCBpbiBKYXZhIGhpc3Rvcnkgd2hpY2ggbGFpZCB0aGUgZm91bmRhdGlvbiBmb3IgdGhlIG1vZGVybiBKYXZhIGVyYS4gSG93ZXZlciwgdGhlIG1hZ25pdHVkZSBvZiB0aGlzIGNoYW5nZSBoYXMgZGlzY291cmFnZSBtYW55IGRldmVsb3BlcnMgZnJvbSBsZWF2aW5nIHRoZSBzYWZlIGhhcmJvciByYXBwcmVzZW50ZWQgYnkgSmF2YSA4LiBXaXRoIFdpY2tldCA5IHdlIGZpbmFsbHkgaGF2ZSBhIGZ1bmRhbWVudGFsIHRvb2wgdG8gbW92ZSBvbiBhbmQgYnJpbmcgb3VyIHdlYiBhcHBsaWNhdGlvbiBpbnRvIHRoZSBuZXcgSmF2YSB3b3JsZC4gIAogICAgIDwvcD4KICAgICA8cD4KLSAgICAgIEphdmEgOOKAmXMgbmV3IGlkaW9tcyBhbmQgdHlwZXMgaGF2ZSBiZWVuIGFwcGxpZWQgdGhyb3VnaG91dCBXaWNrZXTigJlzIEFQSS4gTGVhcm4gbW9yZSBhYm91dCB0aGUgZGV0YWlscyBiZWxvdy4KKyAgICAgIFdpdGggdGhpcyB2ZXJzaW9uIFdpY2tldCBoYXMgYmVlbiBjb21wbGV0ZWQgcmV2aXNpdGVkIGFuZCBpbXByb3ZlZCB0byBlbWJyYWNlIG5ldyB0ZWNobm9sb2dpZXMgbGlrZSBKYXZhIG1vZHVsYXJpemF0aW9uIGFuZCBuZXcgbGlicmFyeSBsaWtlIEpVbml0IDUuCiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgogCiA8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+Ci0gIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KLSAgICA8aDM+SmF2YSA4KyBSZXF1aXJlZDwvaDM+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIEphdmEgcmVsZWFzZSBjeWNsZTwvaDM+CiAgICAgPHA+Ci0gICAgICBTdGFydGluZyB3aXRoIFdpY2tldCA4IHRoZSBtaW5pbXVtIHJlcXVpcmVkIHZlcnNpb24gb2YgSmF2YSBpcyBKYXZhIDguIEFsbCBXaWNrZXQgc3VwcGxpZWQgcHJvamVjdHMgaGF2ZSBiZWVuIHVwZ3JhZGVkIHRvIEphdmEgOCBhbmQgV2lja2V0IDgsIGFuZCBzaG9ydGx5IGFsbCBhY3RpdmUgY29tbXVuaXR5IHByb2plY3RzLCBzdWNoIGFzIFdpY2tldCBTdHVmZiwgd2lsbCBmb2xsb3cgc3VpdC4KLSAgICA8L3A+Ci0gICAgPHA+Ci0gICAgICBXaXRoIHRoZSBhZG9wdGlvbiBvZiBKYXZhIDggd2Ugd2VyZSBhYmxlIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgTGFtYmRhcy4KKyAgICAgIFdpdGggSmF2YSByZWxlYXNpbmcgYXQgYSBmYXN0ZXIgcGhhc2UgaXQncyBpbXBvcnRhbnQgdG8ga2VlcCBhIGxpYnJhcnkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXN0ZXN0IGNoYW5nZXMgaW50cm9kdWNlZCBpbiB0aGUgcGxhdGZvcm0gYW5kIGVuc3VyZSBpdCB3b3JrcyB3aXRoIHRoZSBsYXRlc3QgSmF2YSByZWxlYXNlLiBXaWNrZXQgZG9lcyBhbGwgb2YgdGhpcyBieSB0YWtpbmcgcGFydCB0byB0aGUgPGEgaHJlZj0iaHR0cHM6Ly93aWtpLm9wZW5qZGsuamF2YS5uZXQvZGlzcGxheS9xdWFsaXR5L1F1YWxpdHkrT3V0cmVhY2giIHRhcmdldD0iX2JsYW5rIj5PcGVuSkRLIFF1YWxpdHkgT3V0cmVhY2g8L2E+LCBhbiBpbml0aWF0aXZlIGFpbWVkIHRvIHRlc3QgcG9wdWxhciBPcGVuIFNvdXJjZSBwcm9qZWN0cyB3aXRoIGJvdGggdGhlIGxhdGVzdCBPcGVuSkRLIHJlbGVhc2UgYW5kIHRoZSBFYXJseSBBY2Nlc3MgcmVsZWFzZS4KICAgICA8L3A+CiAgIDwvZGl2PgotICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+Ci0gICAgPGgzPlNlcnZsZXQgMy4xIFJlcXVpcmVkPC9oMz4KKyAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KKyAgICA8aDM+IEJlIHJlYWR5IGZvciB0aGUgbmV4dCBKYXZhIEVudGVycHJpc2U8L2gzPgogICAgIDxwPgotICAgICAgQXMgb2YgV2lja2V0IDggd2Ugb25seSBzdXBwb3J0IHRoZSBKYXZhIFNlcnZsZXQgQVBJIDMuMSAob3IgbmV3ZXIpLiBUaGlzIG1lYW5zIHRoYXQgdG8gcnVuIGFwcGxpY2F0aW9ucyBidWlsdCB1c2luZyBXaWNrZXQgOCB5b3UgaGF2ZSB0byBydW4geW91ciBhcHBsaWNhdGlvbiBpbiBhIG1vZGVybiBzZXJ2ZXIgbGlrZSBUb21jYXQgOC54LCBKZXR0eSA5LjErIG9yIGEgSmF2YSBFRSA3IGNvbXBhdGlibGUgc2VydmVyLgorICAgICBTaG9ydGx5IGFmdGVyIEphdmEgOSB3YXMgcmVsZWFzZWQsIE9yYWNsZSBzdWJtaXR0ZWQgSmF2YSBFRSB0byB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLiBBcyBzaWRlIGVmZmVjdCBvZiB0aGlzIG93bmVyIGNoYW5nZSwgdGhlIHBhY2thZ2UgbmFtZSAnamF2YXgnIGhhZCB0byBiZSBtaWdyYXRlIHRvICdqYWthcnRhJy4gV2lja2V0IGhpc3RvcmljYWxseSBwcm9tb3RlZCBkZWN1cGxpbmcgYmV0d2VlbiBKYXZhIEVFIEFQSXMgYW5kIGFwcGxpY2F0aW9uIGNvZGUsIGhlbmNlIG1ha2luZyBtdWNoIG1vcmUgZWFzaWVyIHRoZSB0cmFuc2l0aW9uIHRvIHRoZSBmdXR1cmUgSmF2YSBFbnRlcnByaXNlIHZlcnNpb25zLiAKICAgICA8L3A+CiAgIDwvZGl2PgotICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+Ci0gICAgPGgzPkphdmEgRGF0ZS9UaW1lIEFQSTwvaDM+Ci0gICAgPHA+Ci0gICAgICBXaWNrZXQgOCBwcm92aWRlcyBvdXQtb2YtdGhlLWJveCBzdXBwb3J0IGZvciB0aGUgbmV3IHR5cGVzIGZvciBoYW5kbGluZyBkYXRlcyBpbiBKYXZhIDguIFRoZXNlIGNhbiBiZSBjb252ZXJ0ZWQsIHZhbGlkYXRlZCBhbmQgYm91bmQgdG8gY29tcG9uZW50cy4KLSAgICA8L3A+Ci0gIDwvZGl2PgotPC9kaXY+Ci08ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+Ci0gIDxkaXYgY2xhc3M9ImwtdHdvLXRoaXJkIj4KLSAgICA8aDM+TGFtYmRhcyBpbiBBbGwgVGhlIFJpZ2h0IFBsYWNlczwvaDM+Ci0gICAgPHA+Ci0gICAgICBUaGUgbWFqb3IgZmVhdHVyZSBvZiBKYXZhIDggd2FzIHRoZSBhZGRpdGlvbiBvZiBsYW1iZGEgc3VwcG9ydCBpbiB0aGUgbGFuZ3VhZ2UuIFdpdGggV2lja2V0IDggd2UgaGF2ZSBsb29rZWQgYXQgcHJvdmlkaW5nIGxhbWJkYSBzdXBwb3J0IGluIHRoZSBBUEkgYW5kIGhhdmUgd2VpZ2hlZCBpdCBhZ2FpbnN0IHBlcmZvcm1hbmNlIGFuZCBtZW1vcnkgdXNhZ2UgY29uc2lkZXJhdGlvbnMuCi0gICAgPC9wPgotICAgIDxwPgotICAgICAgSW4gdGhpcyBsaWdodCB3ZSBoYXZlIG9wdGVkIHRvIGNvbnRpbnVlIHVzaW5nIHN1YmNsYXNzaW5nIGFzIHRoZSBwcmltYXJ5IGV4dGVuc2lvbiBtZWNoYW5pc20gZm9yIFdpY2tldCBjb21wb25lbnRzLgotICAgICAgRmFjdG9yaWVzIGZvciBsYW1iZGFzIGhhdmUgYmVlbiBwcm92aWRlZCBmb3IgdmFyaW91cyBmb3JtcyBvZiBtb2RlbHMgKGRhdGFiaW5kaW5nKSBhbmQgYmVoYXZpb3JzIChhZGFwdGVycyBmb3IgY29tcG9uZW50cykuCi0gICAgPC9wPgotICA8L2Rpdj4KLTwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgotICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgotICAgIDxoMz5PcHRpb25hbCBpcyBTb21ldGltZXMgUmVxdWlyZWQ8L2gzPgotICA8L2Rpdj4KLSAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgotICAgIDxwPgotICAgICAgVGhlIG5ldyBPcHRpb25hbCB0eXBlIGluIEphdmEgOCBpcyBpbnRlbmRlZCBmb3IgcGxhY2VzIGluIHlvdXIgQVBJIHdoZXJlIHRoaW5ncyBjYW4gYmUgbnVsbC4gSW4gV2lja2V04oCZcyBjYXNlIHdlIGhhdmUgYWRvcHRlZCBPcHRpb25hbCBpbiBqdXN0IHRob3NlIHBsYWNlcyB0byBjbGFyaWZ5IHRoZSBBUEkuCi0gICAgPC9wPgotICAgIDxwPgotICAgICAgRm9yIGV4YW1wbGUgdGhlIEFqYXhGYWxsYmFja0xpbmssIGEgbGluayB0aGF0IHdvcmtzIHVzaW5nIGJvdGggd2l0aCBhbmQgd2l0aG91dCBBSkFYLCBub3cgdXNlcyBPcHRpb25hbCB0byBzaWduaWZ5IHdoZXRoZXIgdGhlIGxpbmsgd2FzIGNsaWNrZWQgdXRpbGl6aW5nIEFKQVggb3Igbm9ybWFsIHJlcXVlc3QgcHJvY2Vzc2luZzogdGhlIEFKQVggcmVxdWVzdCBpcyB3cmFwcGVkIGluIGFuIE9wdGlvbmFsLiBQcmV2aW91cyB2ZXJzaW9ucyBvZiBXaWNrZXQgd291bGQgcHJvdmlkZSBhIG51bGwgdmFsdWUgZm9yIHRoZSBBSkFYIHJlcXVlc3QuCi0gICAgPC9wPgotICAgIDxwPgotICAgICAgQmVjYXVzZSB3ZSBoYXZlIG1vZGlmaWVkIHRoZSBBUEkgdG8gdXRpbGl6ZSBPcHRpb25hbCwgeW91IHdpbGwgZ2V0IGNvbXBpbGUgZXJyb3JzIHdoZW4geW91IHN0YXJ0IG1pZ3JhdGluZyB0byBXaWNrZXQgOC4gVGhpcyBnaXZlcyB5b3UgdGhlIGV4YWN0IHBvc2l0aW9ucyB3aGVyZSB0aGVzZSBpbXByb3ZlbWVudHMgaGF2ZSBvY2N1cnJlZCBhbmQgeW91IGNhbiBzdGFydCB3b3JraW5nIHdpdGggdGhlIE9wdGlvbmFsIEFQSS4KLSAgICA8L3A+Ci0gIDwvZGl2PgotICA8ZGl2IGNsYXNzPSJsLXR3by10aGlyZCI+Ci0KLTxmaWd1cmUgY2xhc3M9ImhpZ2hsaWdodCI+PHByZT48Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtamF2YSIgZGF0YS1sYW5nPSJqYXZhIj48c3BhbiBjbGFzcz0iYzEiPi8vIFdJQ0tFVCA3Ojwvc3Bhbj4KLTxzcGFuIGNsYXNzPSJuIj5hZGQ8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPig8L3NwYW4+PHNwYW4gY2xhc3M9ImsiPm5ldzwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5jIj5BamF4RmFsbGJhY2tMaW5rPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4mbHQ7PC9zcGFuPjxzcGFuIGNsYXNzPSJuYyI+Vm9pZDwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+Jmd0Oyg8L3NwYW4+PHNwYW4gY2xhc3M9InMiPiJ3aWNrZXQ3Ijwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im8iPns8L3NwYW4+Ci0gICAgPHNwYW4gY2xhc3M9Im5kIj5AT3ZlcnJpZGU8L3NwYW4+Ci0gICAgPHNwYW4gY2xhc3M9ImtkIj5wdWJsaWM8L3NwYW4+IDxzcGFuIGNsYXNzPSJrdCI+dm9pZDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5mIj5vbkNsaWNrPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJuYyI+QWpheFJlcXVlc3RUYXJnZXQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJuIj50YXJnZXQ8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPik8L3NwYW4+IDxzcGFuIGNsYXNzPSJvIj57PC9zcGFuPgotICAgICAgICA8c3BhbiBjbGFzcz0iayI+aWY8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPig8L3NwYW4+PHNwYW4gY2xhc3M9Im4iPnRhcmdldDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im8iPiE9PC9zcGFuPiA8c3BhbiBjbGFzcz0ia2MiPm51bGw8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPik8L3NwYW4+IDxzcGFuIGNsYXNzPSJvIj57PC9zcGFuPgotICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImMxIj4vLyAuLi48L3NwYW4+Ci0gICAgICAgIDxzcGFuIGNsYXNzPSJvIj59PC9zcGFuPgotICAgIDxzcGFuIGNsYXNzPSJvIj59PC9zcGFuPgotPHNwYW4gY2xhc3M9Im8iPn0pOzwvc3Bhbj4KLTxzcGFuIGNsYXNzPSJjMSI+Ly8gV0lDS0VUIDg6PC9zcGFuPgotPHNwYW4gY2xhc3M9Im4iPmFkZDwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iayI+bmV3PC9zcGFuPiA8c3BhbiBjbGFzcz0ibmMiPkFqYXhGYWxsYmFja0xpbms8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPiZsdDs8L3NwYW4+PHNwYW4gY2xhc3M9Im5jIj5Wb2lkPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4mZ3Q7KDwvc3Bhbj48c3BhbiBjbGFzcz0icyI+IndpY2tldDgiPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ibyI+ezwvc3Bhbj4KLSAgICA8c3BhbiBjbGFzcz0ibmQiPkBPdmVycmlkZTwvc3Bhbj4KLSAgICA8c3BhbiBjbGFzcz0ia2QiPnB1YmxpYzwvc3Bhbj4gPHNwYW4gY2xhc3M9Imt0Ij52b2lkPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmYiPm9uQ2xpY2s8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPig8L3NwYW4+PHNwYW4gY2xhc3M9Im5jIj5PcHRpb25hbDwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+Jmx0Ozwvc3Bhbj48c3BhbiBjbGFzcz0ibmMiPkFqYXhSZXF1ZXN0VGFyZ2V0PC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4mZ3Q7PC9zcGFuPiA8c3BhbiBjbGFzcz0ibiI+dGFyZ2V0PC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ibyI+ezwvc3Bhbj4KLSAgICAgICAgPHNwYW4gY2xhc3M9ImsiPmlmPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJuIj50YXJnZXQ8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPi48L3NwYW4+PHNwYW4gY2xhc3M9Im5hIj5pc1ByZXNlbnQ8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPigpKTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im8iPns8L3NwYW4+Ci0gICAgICAgICAgICA8c3BhbiBjbGFzcz0iYzEiPi8vIC4uLjwvc3Bhbj4KLSAgICAgICAgPHNwYW4gY2xhc3M9Im8iPn08L3NwYW4+Ci0gICAgPHNwYW4gY2xhc3M9Im8iPn08L3NwYW4+Ci08c3BhbiBjbGFzcz0ibyI+fSk7PC9zcGFuPjwvY29kZT48L3ByZT48L2ZpZ3VyZT4KLQotICA8L2Rpdj4KIDwvZGl2PgogCiA8ZGl2IGNsYXNzPSJsLWZpcnN0IGwtZmxleCI+CiAgIDxkaXYgY2xhc3M9ImwtZnVsbCI+Ci0gICAgPGgzPk1vZGVscyBhcyBGdW5jdGlvbmFsIEludGVyZmFjZTwvaDM+CisgICAgPGgzPlByb3RlY3QgeW91ciB3ZWIgYXBwcyB3aXRoIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IChDU1ApPC9oMz4KICAgICA8cD4KLSAgICAgIFdpY2tldCB1c2VzIG1vZGVscyBhcyB0aGUgZGF0YWJpbmRpbmcgbWV0aG9kOiBlYWNoIGRhdGEtYXdhcmUgY29tcG9uZW50IGNhbiB0YWtlIGEgbW9kZWwgaW1wbGVtZW50YXRpb24gdG8gcmV0cmlldmUgYW5kIHN0b3JlIGRhdGEgaW4uIEZyb20gV2lja2V0IDggd2UgaGF2ZSBtYWRlIHRoZSByb290IGludGVyZmFjZSBJTW9kZWwgYSBmdW5jdGlvbmFsIGludGVyZmFjZS4gWW91IGNhbiBub3cgdXNlIGxhbWJkYXMgd2hlcmUgeW91IGNhbiB1c2UgbW9kZWxzLgorICAgICBBcyB0aGUgbnVtYmVyIG9mIHNlY3VyaXR5IHRocmVhdHMgZ3Jvd3MsIGl0J3MgY3J1Y2lhbCBmb3Igd2ViIGFwcGxpY2F0aW9ucyB0byBhZG9wdCB0aGUgbGF0ZXN0IHNlY3VyaXR5IHN0YW5kYXJkcyBhbmQgY291bnRlcm1lYXN1cmVzLiBDU1AgaXMgYSBtb2Rlcm4gc3RhbmRhcmQgdGhhdCBhbGxvd3MgYXBwbGljYXRpb25zIHRvIGRlY2xhcmUgYXBwcm92ZWQgb3JpZ2lucyBvZiBjb250ZW50IChzdWNoIGFzIEphdmFzY3JpcHQsIENTUywgaW1hZ2VzLCBldGMuLi4pIGZvciB0aGUgYnJvd3NlciB0byBsb2FkLiBDb25zdHJ1Y3RpbmcgYSBzYWZlIGFuZCBhdCB0aGUgc2FtZSB0aW1lIGNvbXBsZXRlIENTUCBjYW4gYmUgY2hhbGxlbmdpbmcuIAorICAgICBZb3UgZWl0aGVyIHJpc2sgbGVhdmluZyBob2xlcyBpbiB0aGUgZGVmZW5zZSBvZiB5b3VyIGFwcGxpY2F0aW9uIG9yIHlvdSBicmVhayBjZXJ0YWluIGZ1bmN0aW9uYWxpdHkuIFByb3RlY3RpbmcgYWdhaW5zdCB1bndhbnRlZCBpbmxpbmUgc2NyaXB0cyBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgdGFyZ2V0IHRvIGF0dGFpbi4gSW4gQ1NQIHRoaXMgaXMgY2FsbGVkICd1bnNhZmUtaW5saW5lJyBhbmQgaXQncyB0aGUgbW9zdCBjb21tb24gY2F1c2Ugb2YgY3Jvc3Mtc2l0ZSBzY3JpcHRpbmcgdnVsbmVyYWJpbGl0aWVzLgogICAgIDwvcD4KICAgICA8cD4KLSAgICAgIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBiaW5kcyBhIExhYmVsIGNvbXBvbmVudCB0byB0aGUgbmFtZSBvZiBhIHBlcnNvbiBvYmplY3QgaW4gZGlmZmVyZW50IHdheXMgdXNpbmcgV2lja2V0IDg6Ci0gICAgPC9wPgotCi08ZmlndXJlIGNsYXNzPSJoaWdobGlnaHQiPjxwcmU+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLWphdmEiIGRhdGEtbGFuZz0iamF2YSI+PHNwYW4gY2xhc3M9Im4iPmFkZDwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iayI+bmV3PC9zcGFuPiA8c3BhbiBjbGFzcz0ibmMiPkxhYmVsPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJzIj4ibmFtZTEiPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmwiPnBlcnNvbjo8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPjo8L3NwYW4+PHNwYW4gY2xhc3M9Im4iPm5hbWU8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPikpOzwvc3Bhbj4KLTxzcGFuIGNsYXNzPSJuIj5hZGQ8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPig8L3NwYW4+PHNwYW4gY2xhc3M9ImsiPm5ldzwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5jIj5MYWJlbDwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+KDwvc3Bhbj48c3BhbiBjbGFzcz0icyI+Im5hbWUyIjwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im8iPigpPC9zcGFuPiA8c3BhbiBjbGFzcz0ibyI+LSZndDs8L3NwYW4+IDxzcGFuIGNsYXNzPSJuIj5wZXJzb248L3NwYW4+PHNwYW4gY2xhc3M9Im8iPi48L3NwYW4+PHNwYW4gY2xhc3M9Im5hIj5nZXROYW1lPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4oKSkpOzwvc3Bhbj4KLTxzcGFuIGNsYXNzPSJuIj5hZGQ8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPig8L3NwYW4+PHNwYW4gY2xhc3M9ImsiPm5ldzwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5jIj5MYWJlbDwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+KDwvc3Bhbj48c3BhbiBjbGFzcz0icyI+Im5hbWUzIjwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5jIj5MYW1iZGFNb2RlbDwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+Ljwvc3Bhbj48c3BhbiBjbGFzcz0ibmEiPm9mPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJuIj5wZXJzb25Nb2RlbDwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5sIj5QZXJzb246PC9zcGFuPjxzcGFuIGNsYXNzPSJvIj46PC9zcGFuPjxzcGFuIGNsYXNzPSJuIj5nZXROYW1lPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4pKSk7PC9zcGFuPgotPHNwYW4gY2xhc3M9Im4iPmFkZDwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iayI+bmV3PC9zcGFuPiA8c3BhbiBjbGFzcz0ibmMiPkxhYmVsPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJzIj4ibmFtZTQiPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4sPC9zcGFuPgotICA8c3BhbiBjbGFzcz0ibmMiPkxhbWJkYU1vZGVsPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4uPC9zcGFuPjxzcGFuIGNsYXNzPSJuYSI+b2Y8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPig8L3NwYW4+PHNwYW4gY2xhc3M9Im4iPmNvbnRyYWN0TW9kZWw8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJubCI+Q29udHJhY3Q6PC9zcGFuPjxzcGFuIGNsYXNzPSJvIj46PC9zcGFuPjxzcGFuIGNsYXNzPSJuIj5nZXRQZXJzb248L3NwYW4+PHNwYW4gY2xhc3M9Im8iPik8L3NwYW4+Ci0gICAgPHNwYW4gY2xhc3M9Im8iPi48L3NwYW4+PHNwYW4gY2xhc3M9Im5hIj5tYXA8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPig8L3NwYW4+PHNwYW4gY2xhc3M9Im5sIj5QZXJzb246PC9zcGFuPjxzcGFuIGNsYXNzPSJvIj46PC9zcGFuPjxzcGFuIGNsYXNzPSJuIj5nZXROYW1lPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4pKSk7PC9zcGFuPjwvY29kZT48L3ByZT48L2ZpZ3VyZT4KLQotICAgIDxwPgotICAgICAgVGhlIG5ldyA8Y29kZT5MYW1iZGFNb2RlbDwvY29kZT4gdHlwZSBpbiBXaWNrZXQgZW5hYmxlcyB0eXBlIHNhZmUsIHJlZmFjdG9yIHNhZmUgZGF0YWJpbmRpbmcgZm9yIGNvbXBvbmVudHMuIFByZXZpb3VzbHkgb25lIHdvdWxkIGJpbmQgZGF0YSB0byBjb21wb25lbnRzIHVzaW5nIFByb3BlcnR5TW9kZWwsIHVzaW5nIGEgc3RyaW5nIGV4cHJlc3Npb24gdG8gZGV0ZXJtaW5lIHRoZSBleGFjdCBwcm9wZXJ0eSB0byBzaG93LiBUaGUgc3RyaW5nIGV4cHJlc3Npb24gaXMgc29tZXRoaW5nIGxpa2UgPGNvZGU+InBlcnNvbi5uYW1lIjwvY29kZT4uIFRoaXMgaXMgaW5oZXJlbnRseSBkaWZmaWN1bHQgdG8gcmVmYWN0b3Igd2hlbiB5b3UgZGVjaWRlIHRvIGNoYW5nZSB0aGUgbmFtZSBmaWVsZCBpbnRvIGZvciBleGFtcGxlIDxjb2RlPiJsYXN0TmFtZSI8L2NvZGU+LiBXaXRoIDxjb2RlPkxhbWJkYU1vZGVsPC9jb2RlPiwgdGhpcyByZWZhY3RvcmluZyBpcyB0cml2aWFsIGZvciBJREVzIHRvIHBlcmZvcm06IHRoZSBKYXZhIG1ldGhvZHMgY2FuIGVhc2lseSBiZSByZW5hbWVkIGFuZCB0aGUgSURFIHdpbGwgZmluZCBhbGwgdGhlIHJlZmVyZW5jZXMuCi0gICAgPC9wPgotCi0gICAgPHA+Ci0gICAgICBNaWNyb2JlbmNobWFya3MgaGF2ZSBzaG93biB0aGF0IHVzaW5nIGxhbWJkYSBtb2RlbHMgcHJvdmlkZXMgbXVjaCBiZXR0ZXIgcGVyZm9ybWFuY2UgdGhhbiB0aGUgc3RyaW5nIGJhc2VkIFByb3BlcnR5TW9kZWwgYXQgdGhlIGNvc3Qgb2Ygc2xpZ2h0bHkgbGFyZ2VyIG1lbW9yeSBmb290cHJpbnQuCisgICAgIFdpY2tldCA5IGNvbWVzIHdpdGggZnVsbCBzdXBwb3J0IGZvciBDU1AgYW5kIGRvZXMgbm90IG5lZWQgYW55IHVuc2FmZSBkaXJlY3RpdmVzLiBXaWNrZXQgd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCBhIG5vbmNlIHRvIGV2ZXJ5IGhlYWRlciBjb250cmlidXRpb24gYW5kIHdoaXRlbGlzdCB0aGlzIG5vbmNlLiBUaGlzIGFsbG93cyBmb3IgZmxleGlibGUgbG9hZGluZyBvZiByZXNvdXJjZXMgd2l0aG91dCB0aGUgbmVlZCBvZiBhIGNvbXBsZXggQ1NQLiBPZiBjb3Vyc2UgaXQgaXMgcG9zc2libGUgdG8gbW9kaWZ5IGFuZCBjdXN0b21pemUgdGhlIENTUCwgYWRkIGFkZGl0aW9uYWwgZGlyZWN0aXZlcyBvciBkaXNhYmxlIGl0IGVudGlyZWx5LiBMb29rdXAgb3VyIDxhIGhyZWY9Imh0dHA6Ly93aWNrZXQuYXBhY2hlLm9yZy9sZWFybi8jZ3VpZGUiIHRhcmdldD0iX2JsYW5rIj5kb2N1bWVudGF0aW9uPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gICAgIAogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KQEAgLTI0NywyMSArMTgzLDIxIEBACiAgICAgPC9wPgogICA8L2Rpdj4KICAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KLSAgICA8aDM+TWlncmF0aW5nIHRvIFdpY2tldCA4PC9oMz4KKyAgICA8aDM+TWlncmF0aW5nIHRvIFdpY2tldCA5PC9oMz4KICAgICA8cD4KLSAgICAgIFdoZW4geW91IG1pZ3JhdGUgZnJvbSBhIHByZXZpb3VzIFdpY2tldCB2ZXJzaW9uIHRvIFdpY2tldCA4LCBhIGZ1bGwgbGlzdCBvZiBjaGFuZ2VzIGFuZCBtaWdyYXRpb25zIGlzIGF2YWlsYWJsZSBhdCB0aGUgZm9sbG93aW5nIHBhZ2U6CisgICAgICBXaGVuIHlvdSBtaWdyYXRlIGZyb20gYSBwcmV2aW91cyBXaWNrZXQgdmVyc2lvbiB0byBXaWNrZXQgOSwgYSBmdWxsIGxpc3Qgb2YgY2hhbmdlcyBhbmQgbWlncmF0aW9ucyBpcyBhdmFpbGFibGUgYXQgdGhlIGZvbGxvd2luZyBwYWdlOgogICAgIDwvcD4KICAgICA8cD4KLSAgICAgIDxhIGhyZWY9Imh0dHBzOi8vcy5hcGFjaGUub3JnL3dpY2tldDhtaWdyYXRlIj5odHRwczovL3MuYXBhY2hlLm9yZy93aWNrZXQ4bWlncmF0ZTwvYT4KKyAgICAgIDxhIGhyZWY9Imh0dHBzOi8vcy5hcGFjaGUub3JnL3dpY2tldDltaWdyYXRlIj5odHRwczovL3MuYXBhY2hlLm9yZy93aWNrZXQ5bWlncmF0ZTwvYT4KICAgICA8L3A+CiAgICAgPHA+Ci0gICAgICBQbGVhc2UgY29uc3VsdCB0aGlzIG1pZ3JhdGlvbiBndWlkZSB3aGVuIHlvdSBhcmUgbW92aW5nIHRvd2FyZHMgV2lja2V0IDguCisgICAgICBQbGVhc2UgY29uc3VsdCB0aGlzIG1pZ3JhdGlvbiBndWlkZSB3aGVuIHlvdSBhcmUgbW92aW5nIHRvd2FyZHMgV2lja2V0IDkuCiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgogPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgotICAgIDxoMj5HZXR0aW5nIFN0YXJ0ZWQgd2l0aCBXaWNrZXQgODwvaDI+CisgICAgPGgyPkdldHRpbmcgU3RhcnRlZCB3aXRoIFdpY2tldCA5PC9oMj4KICAgICA8cD4KICAgICAgIEl0IGlzIHZlcnkgZWFzeSB0byBnZXQgc3RhcnRlZCB3aXRoIFdpY2tldDogdXNlIG91ciA8YSBocmVmPSIvc3RhcnQvcXVpY2tzdGFydC5odG1sIj5xdWljay1zdGFydCB3aXphcmQ8L2E+IG9yIAogICAgICAgdXNlIG9uZSBvZiB0aGUgb3B0aW9ucyBiZWxvdy4KQEAgLTI3Nyw3ICsyMTMsNyBAQAogPGZpZ3VyZSBjbGFzcz0iaGlnaGxpZ2h0Ij48cHJlPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS14bWwiIGRhdGEtbGFuZz0ieG1sIj48c3BhbiBjbGFzcz0ibnQiPiZsdDtkZXBlbmRlbmN5Jmd0Ozwvc3Bhbj4KICAgICA8c3BhbiBjbGFzcz0ibnQiPiZsdDtncm91cElkJmd0Ozwvc3Bhbj5vcmcuYXBhY2hlLndpY2tldDxzcGFuIGNsYXNzPSJudCI+Jmx0Oy9ncm91cElkJmd0Ozwvc3Bhbj4KICAgICA8c3BhbiBjbGFzcz0ibnQiPiZsdDthcnRpZmFjdElkJmd0Ozwvc3Bhbj53aWNrZXQtY29yZTxzcGFuIGNsYXNzPSJudCI+Jmx0Oy9hcnRpZmFjdElkJmd0Ozwvc3Bhbj4KLSAgICA8c3BhbiBjbGFzcz0ibnQiPiZsdDt2ZXJzaW9uJmd0Ozwvc3Bhbj44LjguMDxzcGFuIGNsYXNzPSJudCI+Jmx0Oy92ZXJzaW9uJmd0Ozwvc3Bhbj4KKyAgICA8c3BhbiBjbGFzcz0ibnQiPiZsdDt2ZXJzaW9uJmd0Ozwvc3Bhbj45LjAuMC1NNTxzcGFuIGNsYXNzPSJudCI+Jmx0Oy92ZXJzaW9uJmd0Ozwvc3Bhbj4KIDxzcGFuIGNsYXNzPSJudCI+Jmx0Oy9kZXBlbmRlbmN5Jmd0Ozwvc3Bhbj48L2NvZGU+PC9wcmU+PC9maWd1cmU+CiAKICAgPC9kaXY+CkBAIC0yODgsOCArMjI0LDggQEAKICAgICAgIGNvbnZlbmllbmNlIGJpbmFyeSBwYWNrYWdlCiAgICAgPC9wPgogICAgIDx1bD4KLSAgICAgIDxsaT5Tb3VyY2U6IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9keW4vY2xvc2VyLmNnaS93aWNrZXQvOC44LjAiPjguOC4wIHNvdXJjZSBkb3dubG9hZDwvYT48L2xpPgotICAgICAgPGxpPkJpbmFyeTogPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2R5bi9jbG9zZXIuY2dpL3dpY2tldC84LjguMC9iaW5hcmllcyI+OC44LjAgYmluYXJ5IGRvd25sb2FkPC9hPjwvbGk+CisgICAgICA8bGk+U291cmNlOiA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZHluL2Nsb3Nlci5jZ2kvd2lja2V0LzkuMC4wLU01Ij45LjAuMC1NNSBzb3VyY2UgZG93bmxvYWQ8L2E+PC9saT4KKyAgICAgIDxsaT5CaW5hcnk6IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9keW4vY2xvc2VyLmNnaS93aWNrZXQvOS4wLjAtTTUvYmluYXJpZXMiPjkuMC4wLU01IGJpbmFyeSBkb3dubG9hZDwvYT48L2xpPgogICAgIDwvdWw+CiAgIDwvZGl2PgogPC9kaXY+CkBAIC0zOTYsNiArMzMyLDgwIEBACiAKIAogCisgICAgICAgICAgICA8YXJ0aWNsZSBpZD0iYnVpbHR3aXRod2lja2V0IiBjbGFzcz0iYnVpbHR3aXRod2lja2V0Ij4KKyAgICAgICAgICAgICAgICA8aGVhZGVyIGNsYXNzPSJwcmVhbWJsZSI+CisgICAgPGgxIGlkPSJwb3dlcmVkYnkiPlByb2plY3RzIFVzaW5nIEFwYWNoZSBXaWNrZXQ8L2gxPgorICAgIDxwPgorICAgICAgICBNYW55IHByb2plY3RzIHVzZSBXaWNrZXQgYnV0IGFyZSBub3Qga25vd24gZm9yIGl0LiAKKyAgICAgICAgQmVsb3cgeW91IGZpbmQgYSBsaXN0IG9mIHByb2plY3RzIHRoYXQgYXJlIDxhIGhyZWY9Imh0dHA6Ly9idWlsdHdpdGh3aWNrZXQudHVtYmxyLmNvbSIgcmVsPSJub2ZvbGxvdyI+UG93ZXJlZCBieSBXaWNrZXQ8L2E+LgorICAgIDwvcD4KKzwvaGVhZGVyPgorPGFydGljbGUgY2xhc3M9ImwtZnVsbCI+CisgICAgPGRpdiBjbGFzcz0iYnVpbHR3aXRod2lja2V0LXNsaWRlciI+PC9kaXY+CisgICAgPGJyPjxicj4KKyAgICA8cD4KKyAgICAgICAgVGhpcyBsaXN0IGlzIGdlbmVyYXRlZCBmcm9tIG91ciBUdW1ibHIgZmVlZCAnQnVpbHQgd2l0aCBXaWNrZXQnLiAKKyAgICAgICAgWW91IGNhbiBzdWJtaXQgeW91ciBvd24gcHJvamVjdCB0byB0aGlzIGxpc3QgdGhyb3VnaCAKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL2J1aWx0d2l0aHdpY2tldC50dW1ibHIuY29tL3N1Ym1pdCIgcmVsPSJub2ZvbGxvdyI+dGhpcyBmb3JtPC9hPi4KKyAgICA8L3A+Cis8L2FydGljbGU+Cis8ZGl2IGNsYXNzPSJsLWZpcnN0Ij48L2Rpdj4KKzwhLS0gT25seSBkaXNwbGF5IHRoZSBibG9nIGltYWdlLCB0aXRsZSBhbmQgcG9zdCBVUkwgLS0+ICAgCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+IAorICAgIGZ1bmN0aW9uIHJhbmRvbUludEZyb21JbnRlcnZhbChtaW4sbWF4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoobWF4LW1pbisxKSttaW4pOworICAgIH0KKworICAgICQuZ2V0SlNPTignLi90dW1ibHIuanNvbicsCisgICAgICAgIGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICB2YXIgcG9zdHMgPSByZXNwb25zZS5wb3N0czsgIAorCisgICAgICAgICAgICBmb3IodmFyIHBvc3RJbmRleCBpbiBwb3N0cykgeworICAgICAgICAgICAgICAgIHZhciBwb3N0ID0gcG9zdHNbcG9zdEluZGV4XTsKKyAgICAgICAgICAgICAgICB2YXIgY2FwdGlvbiA9IGpRdWVyeSgnPGRpdj4nICsgcG9zdFsncGhvdG8tY2FwdGlvbiddICsgJzwvZGl2PicpLnRleHQoKS5zdWJzdHJpbmcoMCwxNTApICsgIi4uLiI7CisgICAgICAgICAgICAgICAgdmFyIG5ld1NsaWRlID0gJCgnLmJ1aWx0d2l0aHdpY2tldC1zbGlkZXInKS5hcHBlbmQoCisgICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJidWlsdHdpdGh3aWNrZXQtcG9zdCI+XG4nICsKKyAgICAgICAgICAgICAgICAgICAgJyAgPGltZyBjbGFzcz0iYnVpbHR3aXRod2lja2V0LXNjcmVlbnNob3QiIGRhdGEtbGF6eT0iJyArIHBvc3RbJ3Bob3RvLXVybC01MDAnXSArICciPlxuJyArCisgICAgICAgICAgICAgICAgICAgICcgIDxwIGNsYXNzPSJidWlsdHdpdGh3aWNrZXQtY2FwdGlvbiI+JyArIGNhcHRpb24gKyAnPC9wPlxuJyArCisgICAgICAgICAgICAgICAgICAgICcgIDxhIGhyZWY9IicgKyBwb3N0Wyd1cmwnXSArICciIHJlbD0ibm9mb2xsb3ciPk1vcmU8L2E+XG4nICsgCisgICAgICAgICAgICAgICAgICAgICc8L2Rpdj4nKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgJCgnLmJ1aWx0d2l0aHdpY2tldC1zbGlkZXInKS5zbGljayh7CisgICAgICAgICAgICAgICAgYXJyb3dzOiB0cnVlLAorICAgICAgICAgICAgICAgIGF1dG9wbGF5OiB0cnVlLAorICAgICAgICAgICAgICAgIGF1dG9wbGF5U3BlZWQ6IDUwMDAsCisgICAgICAgICAgICAgICAgZG90czogdHJ1ZSwKKyAgICAgICAgICAgICAgICBkcmFnZ2FibGU6IHRydWUsCisgICAgICAgICAgICAgICAgaW5maW5pdGU6IHRydWUsCisgICAgICAgICAgICAgICAgaW5pdGlhbFNsaWRlOiByYW5kb21JbnRGcm9tSW50ZXJ2YWwoMCwgcG9zdHMubGVuZ3RoKSwKKyAgICAgICAgICAgICAgICBsYXp5TG9hZDogJ29uZGVtYW5kJywKKyAgICAgICAgICAgICAgICBwYXVzZU9uRG90c0hvdmVyOiB0cnVlLAorICAgICAgICAgICAgICAgIHJlc3BvbnNpdmU6IFsgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogNTkwLAorICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDEKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogOTYwLAorICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogMywKKyAgICAgICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMywKKyAgICAgICAgICAgICAgICBzd2lwZTogdHJ1ZSwKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKzwvc2NyaXB0PgorCisgICAgICAgICAgICA8L2FydGljbGU+CisKICAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJuZXdzIiBjbGFzcz0iIj4KICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsLWZ1bGwgbC1maXJzdCBwcmVhbWJsZSI+CiAgICAgPGgxIGlkPSJuZXdzIj5OZXdzIGFib3V0IEFwYWNoZSBXaWNrZXQ8L2gxPgpkaWZmIC0tZ2l0IGEvaW5kZXgubWQgYi9pbmRleC5tZAppbmRleCBjMWUwOGRkLi5mODk3NjNhIDEwMDY0NAotLS0gYS9pbmRleC5tZAorKysgYi9pbmRleC5tZApAQCAtMSw5ICsxLDE0IEBACiAtLS0KIGxheW91dDogZGVmYXVsdAotdGl0bGU6IEhvbWUKK3RpdGxlOgogcGFnZWNsYXNzZXM6IGluZGV4CiBhZGRpdGlvbmFsQ29udGVudHM6CiAgIC0KKyAgIGhlYWRlcjogYnVpbHR3aXRod2lja2V0LS1oZWFkZXIuaHRtbAorICAgcGF0aDogYnVpbHR3aXRod2lja2V0Lmh0bWwKKyAgIHNlY3Rpb25JZDogYnVpbHR3aXRod2lja2V0CisgICBjc3NDbGFzczogYnVpbHR3aXRod2lja2V0CisgIC0KICAgIHBhdGg6IG5ld3MuaHRtbAogICAgc2VjdGlvbklkOiBuZXdzCiBqdW1ib3Ryb25MaW5rczoKQEAgLTE0LDEyMyArMTksNTcgQEAKIAogPGRpdiBjbGFzcz0ibC1mdWxsIGwtZmlyc3QgcHJlYW1ibGUiPgogICAgIDxoMSBpZD0iaW50cm9kdWN0aW9uIj5Bbm5vdW5jaW5nIEFwYWNoZSZuYnNwO1dpY2tldCZuYnNwOzg6IFdyaXRlIExlc3MsIEFjaGlldmUgTW9yZTwvaDE+CisgICAgPGRpdj4KKyAgICAgIDxpbWcgc3JjPSJ7eyBzaXRlLmJhc2V1cmwgfX0vaW1nL2xvZ28uc3ZnIiBhbHQ9IkFwYWNoZSBXaWNrZXQiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj4KKyAgICA8L2Rpdj4KICAgICA8cD4KLSAgICAgIFRoZSBBcGFjaGUgV2lja2V0IHByb2plY3QgYW5ub3VuY2VzIHRoZSA4dGggbWFqb3IgcmVsZWFzZSBvZiB0aGUgb3BlbiBzb3VyY2UgSmF2YSB3ZWIgZnJhbWV3b3JrIHNlcnZpY2luZyB3ZWJzaXRlcyBhbmQgYXBwbGljYXRpb25zIGFjcm9zcyB0aGUgZ2xvYmUgZm9yIG92ZXIgYSBkZWNhZGUuIFdpdGggdGhpcyByZWxlYXNlIFdpY2tldCBlbWJyYWNlcyBKYXZhIDggaWRpb21zIGZ1bGx5LCBhbGxvd2luZyB0aGUgdXNlIG9mIGxhbWJkYSBleHByZXNzaW9ucyBpbiBhbGwgdGhlIHJpZ2h0IHBsYWNlcy4gV2l0aCBXaWNrZXQgOCB5b3UgY2FuIHdyaXRlIGZld2VyLCBmYXN0ZXIgYW5kIG1vcmUgbWFpbnRhaW5hYmxlIGNvZGUuCisgICAgICBUaGUgQXBhY2hlIFdpY2tldCBwcm9qZWN0IGFubm91bmNlcyB0aGUgOXRoIG1ham9yIHJlbGVhc2Ugb2YgdGhlIG9wZW4gc291cmNlIEphdmEgd2ViIGZyYW1ld29yayBzZXJ2aWNpbmcgd2Vic2l0ZXMgYW5kIGFwcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGdsb2JlIHNpbmNlIDIwMDQuIAorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIEJ1aWx0IG9uIHRvcCBvZiBKYXZhIDExLCB0aGlzIHZlcnNpb24gb2YgV2lja2V0IGJyaW5ncyB3ZWIgZGV2ZWxvcG1lbnQgaW50byB0aGUgbW9kZXJuIEphdmEgd29ybGQsIG9mZmVyaW5nIGEgZnVuZGFtZW50YWwgdG9vbCB0byBrZWVwIHlvdSBjb2RlIHVwIHRvIGRhdGUgd2l0aCBKYXZhIGV2b2x1dGlvbi4KICAgICA8L3A+CiA8L2Rpdj4KIDxkaXYgY2xhc3M9ImwtZmlyc3QiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgotICAgIDxoMz5BIENhcmVmdWwgQXBwbGljYXRpb24gb2YgSmF2YSA4PC9oMz4KLQorICAgIDxoMz5CcmluZyB0aGUgd2ViIGludG8gdGhlIG1vZGVybiBKYXZhIGVyYTwvaDM+CiAgICAgPHA+Ci0gICAgICBXaGlsZSBwcmV2aW91cyB2ZXJzaW9ucyBvZiBXaWNrZXQgd29yayB3ZWxsIHdpdGggSmF2YSA4IGFuZCBiZXlvbmQsIHRoZSBXaWNrZXQgQVBJIHdhcyBub3Qgb3B0aW1pemVkIHRvIG1ha2UgZnVsbCB1c2Ugb2YgSmF2YSA4IGlkaW9tcy4gQWZ0ZXIgY2FyZWZ1bCBjb25zaWRlcmF0aW9uIGFuZCB0cnlpbmcgbWFueSBwYXRocyB0byBhZG9wdCBuZXcgd2F5cyBvZiBjb21iaW5pbmcgSmF2YSA4IGFuZCBXaWNrZXQsIHdlIGZpbmFsbHkgc2V0dGxlZCBvbiB0aGUgY3VycmVudCBBUEkuCisgICAgIFRoZSByZWxlYXNlIG9mIEphdmEgOSBoYXMgYmVlbiBhIHR1cm5pbmcgcG9pbnQgaW4gSmF2YSBoaXN0b3J5IHdoaWNoIGxhaWQgdGhlIGZvdW5kYXRpb24gZm9yIHRoZSBtb2Rlcm4gSmF2YSBlcmEuIEhvd2V2ZXIsIHRoZSBtYWduaXR1ZGUgb2YgdGhpcyBjaGFuZ2UgaGFzIGRpc2NvdXJhZ2UgbWFueSBkZXZlbG9wZXJzIGZyb20gbGVhdmluZyB0aGUgc2FmZSBoYXJib3IgcmFwcHJlc2VudGVkIGJ5IEphdmEgOC4gV2l0aCBXaWNrZXQgOSB3ZSBmaW5hbGx5IGhhdmUgYSBmdW5kYW1lbnRhbCB0b29sIHRvIG1vdmUgb24gYW5kIGJyaW5nIG91ciB3ZWIgYXBwbGljYXRpb24gaW50byB0aGUgbmV3IEphdmEgd29ybGQuICAKICAgICA8L3A+CiAgICAgPHA+Ci0gICAgICBKYXZhIDjigJlzIG5ldyBpZGlvbXMgYW5kIHR5cGVzIGhhdmUgYmVlbiBhcHBsaWVkIHRocm91Z2hvdXQgV2lja2V04oCZcyBBUEkuIExlYXJuIG1vcmUgYWJvdXQgdGhlIGRldGFpbHMgYmVsb3cuCisgICAgICBXaXRoIHRoaXMgdmVyc2lvbiBXaWNrZXQgaGFzIGJlZW4gY29tcGxldGVkIHJldmlzaXRlZCBhbmQgaW1wcm92ZWQgdG8gZW1icmFjZSBuZXcgdGVjaG5vbG9naWVzIGxpa2UgSmF2YSBtb2R1bGFyaXphdGlvbiBhbmQgbmV3IGxpYnJhcnkgbGlrZSBKVW5pdCA1LgogICAgIDwvcD4KICAgPC9kaXY+CiA8L2Rpdj4KIAogPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgotICA8ZGl2IGNsYXNzPSJsLW9uZS10aGlyZCI+Ci0gICAgPGgzPkphdmEgOCsgUmVxdWlyZWQ8L2gzPgorICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgorICAgIDxoMz5TdGF5IHVwIHRvIGRhdGUgd2l0aCBKYXZhIHJlbGVhc2UgY3ljbGU8L2gzPgogICAgIDxwPgotICAgICAgU3RhcnRpbmcgd2l0aCBXaWNrZXQgOCB0aGUgbWluaW11bSByZXF1aXJlZCB2ZXJzaW9uIG9mIEphdmEgaXMgSmF2YSA4LiBBbGwgV2lja2V0IHN1cHBsaWVkIHByb2plY3RzIGhhdmUgYmVlbiB1cGdyYWRlZCB0byBKYXZhIDggYW5kIFdpY2tldCA4LCBhbmQgc2hvcnRseSBhbGwgYWN0aXZlIGNvbW11bml0eSBwcm9qZWN0cywgc3VjaCBhcyBXaWNrZXQgU3R1ZmYsIHdpbGwgZm9sbG93IHN1aXQuCi0gICAgPC9wPgotICAgIDxwPgotICAgICAgV2l0aCB0aGUgYWRvcHRpb24gb2YgSmF2YSA4IHdlIHdlcmUgYWJsZSB0byBwcm92aWRlIHN1cHBvcnQgZm9yIExhbWJkYXMuCisgICAgICBXaXRoIEphdmEgcmVsZWFzaW5nIGF0IGEgZmFzdGVyIHBoYXNlIGl0J3MgaW1wb3J0YW50IHRvIGtlZXAgYSBsaWJyYXJ5IHVwIHRvIGRhdGUgd2l0aCB0aGUgbGFzdGVzdCBjaGFuZ2VzIGludHJvZHVjZWQgaW4gdGhlIHBsYXRmb3JtIGFuZCBlbnN1cmUgaXQgd29ya3Mgd2l0aCB0aGUgbGF0ZXN0IEphdmEgcmVsZWFzZS4gV2lja2V0IGRvZXMgYWxsIG9mIHRoaXMgYnkgdGFraW5nIHBhcnQgdG8gdGhlIDxhIGhyZWY9Imh0dHBzOi8vd2lraS5vcGVuamRrLmphdmEubmV0L2Rpc3BsYXkvcXVhbGl0eS9RdWFsaXR5K091dHJlYWNoIiB0YXJnZXQ9Il9ibGFuayI+T3BlbkpESyBRdWFsaXR5IE91dHJlYWNoPC9hPiwgYW4gaW5pdGlhdGl2ZSBhaW1lZCB0byB0ZXN0IHBvcHVsYXIgT3BlbiBTb3VyY2UgcHJvamVjdHMgd2l0aCBib3RoIHRoZSBsYXRlc3QgT3BlbkpESyByZWxlYXNlIGFuZCB0aGUgRWFybHkgQWNjZXNzIHJlbGVhc2UuCiAgICAgPC9wPgogICA8L2Rpdj4KLSAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgotICAgIDxoMz5TZXJ2bGV0IDMuMSBSZXF1aXJlZDwvaDM+CisgIDxkaXYgY2xhc3M9ImwtaGFsZiI+CisgICAgPGgzPiBCZSByZWFkeSBmb3IgdGhlIG5leHQgSmF2YSBFbnRlcnByaXNlPC9oMz4KICAgICA8cD4KLSAgICAgIEFzIG9mIFdpY2tldCA4IHdlIG9ubHkgc3VwcG9ydCB0aGUgSmF2YSBTZXJ2bGV0IEFQSSAzLjEgKG9yIG5ld2VyKS4gVGhpcyBtZWFucyB0aGF0IHRvIHJ1biBhcHBsaWNhdGlvbnMgYnVpbHQgdXNpbmcgV2lja2V0IDggeW91IGhhdmUgdG8gcnVuIHlvdXIgYXBwbGljYXRpb24gaW4gYSBtb2Rlcm4gc2VydmVyIGxpa2UgVG9tY2F0IDgueCwgSmV0dHkgOS4xKyBvciBhIEphdmEgRUUgNyBjb21wYXRpYmxlIHNlcnZlci4KKyAgICAgU2hvcnRseSBhZnRlciBKYXZhIDkgd2FzIHJlbGVhc2VkLCBPcmFjbGUgc3VibWl0dGVkIEphdmEgRUUgdG8gdGhlIEVjbGlwc2UgRm91bmRhdGlvbi4gQXMgc2lkZSBlZmZlY3Qgb2YgdGhpcyBvd25lciBjaGFuZ2UsIHRoZSBwYWNrYWdlIG5hbWUgJ2phdmF4JyBoYWQgdG8gYmUgbWlncmF0ZSB0byAnamFrYXJ0YScuIFdpY2tldCBoaXN0b3JpY2FsbHkgcHJvbW90ZWQgZGVjdXBsaW5nIGJldHdlZW4gSmF2YSBFRSBBUElzIGFuZCBhcHBsaWNhdGlvbiBjb2RlLCBoZW5jZSBtYWtpbmcgbXVjaCBtb3JlIGVhc2llciB0aGUgdHJhbnNpdGlvbiB0byB0aGUgZnV0dXJlIEphdmEgRW50ZXJwcmlzZSB2ZXJzaW9ucy4gCiAgICAgPC9wPgogICA8L2Rpdj4KLSAgPGRpdiBjbGFzcz0ibC1vbmUtdGhpcmQiPgotICAgIDxoMz5KYXZhIERhdGUvVGltZSBBUEk8L2gzPgotICAgIDxwPgotICAgICAgV2lja2V0IDggcHJvdmlkZXMgb3V0LW9mLXRoZS1ib3ggc3VwcG9ydCBmb3IgdGhlIG5ldyB0eXBlcyBmb3IgaGFuZGxpbmcgZGF0ZXMgaW4gSmF2YSA4LiBUaGVzZSBjYW4gYmUgY29udmVydGVkLCB2YWxpZGF0ZWQgYW5kIGJvdW5kIHRvIGNvbXBvbmVudHMuCi0gICAgPC9wPgotICA8L2Rpdj4KLTwvZGl2PgotPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgotICA8ZGl2IGNsYXNzPSJsLXR3by10aGlyZCI+Ci0gICAgPGgzPkxhbWJkYXMgaW4gQWxsIFRoZSBSaWdodCBQbGFjZXM8L2gzPgotICAgIDxwPgotICAgICAgVGhlIG1ham9yIGZlYXR1cmUgb2YgSmF2YSA4IHdhcyB0aGUgYWRkaXRpb24gb2YgbGFtYmRhIHN1cHBvcnQgaW4gdGhlIGxhbmd1YWdlLiBXaXRoIFdpY2tldCA4IHdlIGhhdmUgbG9va2VkIGF0IHByb3ZpZGluZyBsYW1iZGEgc3VwcG9ydCBpbiB0aGUgQVBJIGFuZCBoYXZlIHdlaWdoZWQgaXQgYWdhaW5zdCBwZXJmb3JtYW5jZSBhbmQgbWVtb3J5IHVzYWdlIGNvbnNpZGVyYXRpb25zLgotICAgIDwvcD4KLSAgICA8cD4KLSAgICAgIEluIHRoaXMgbGlnaHQgd2UgaGF2ZSBvcHRlZCB0byBjb250aW51ZSB1c2luZyBzdWJjbGFzc2luZyBhcyB0aGUgcHJpbWFyeSBleHRlbnNpb24gbWVjaGFuaXNtIGZvciBXaWNrZXQgY29tcG9uZW50cy4KLSAgICAgIEZhY3RvcmllcyBmb3IgbGFtYmRhcyBoYXZlIGJlZW4gcHJvdmlkZWQgZm9yIHZhcmlvdXMgZm9ybXMgb2YgbW9kZWxzIChkYXRhYmluZGluZykgYW5kIGJlaGF2aW9ycyAoYWRhcHRlcnMgZm9yIGNvbXBvbmVudHMpLgotICAgIDwvcD4KLSAgPC9kaXY+Ci08L2Rpdj4KLTxkaXYgY2xhc3M9ImwtZmlyc3QgbC1mbGV4Ij4KLSAgPGRpdiBjbGFzcz0ibC1mdWxsIj4KLSAgICA8aDM+T3B0aW9uYWwgaXMgU29tZXRpbWVzIFJlcXVpcmVkPC9oMz4KLSAgPC9kaXY+Ci0gIDxkaXYgY2xhc3M9Imwtb25lLXRoaXJkIj4KLSAgICA8cD4KLSAgICAgIFRoZSBuZXcgT3B0aW9uYWwgdHlwZSBpbiBKYXZhIDggaXMgaW50ZW5kZWQgZm9yIHBsYWNlcyBpbiB5b3VyIEFQSSB3aGVyZSB0aGluZ3MgY2FuIGJlIG51bGwuIEluIFdpY2tldOKAmXMgY2FzZSB3ZSBoYXZlIGFkb3B0ZWQgT3B0aW9uYWwgaW4ganVzdCB0aG9zZSBwbGFjZXMgdG8gY2xhcmlmeSB0aGUgQVBJLgotICAgIDwvcD4KLSAgICA8cD4KLSAgICAgIEZvciBleGFtcGxlIHRoZSBBamF4RmFsbGJhY2tMaW5rLCBhIGxpbmsgdGhhdCB3b3JrcyB1c2luZyBib3RoIHdpdGggYW5kIHdpdGhvdXQgQUpBWCwgbm93IHVzZXMgT3B0aW9uYWwgdG8gc2lnbmlmeSB3aGV0aGVyIHRoZSBsaW5rIHdhcyBjbGlja2VkIHV0aWxpemluZyBBSkFYIG9yIG5vcm1hbCByZXF1ZXN0IHByb2Nlc3Npbmc6IHRoZSBBSkFYIHJlcXVlc3QgaXMgd3JhcHBlZCBpbiBhbiBPcHRpb25hbC4gUHJldmlvdXMgdmVyc2lvbnMgb2YgV2lja2V0IHdvdWxkIHByb3ZpZGUgYSBudWxsIHZhbHVlIGZvciB0aGUgQUpBWCByZXF1ZXN0LgotICAgIDwvcD4KLSAgICA8cD4KLSAgICAgIEJlY2F1c2Ugd2UgaGF2ZSBtb2RpZmllZCB0aGUgQVBJIHRvIHV0aWxpemUgT3B0aW9uYWwsIHlvdSB3aWxsIGdldCBjb21waWxlIGVycm9ycyB3aGVuIHlvdSBzdGFydCBtaWdyYXRpbmcgdG8gV2lja2V0IDguIFRoaXMgZ2l2ZXMgeW91IHRoZSBleGFjdCBwb3NpdGlvbnMgd2hlcmUgdGhlc2UgaW1wcm92ZW1lbnRzIGhhdmUgb2NjdXJyZWQgYW5kIHlvdSBjYW4gc3RhcnQgd29ya2luZyB3aXRoIHRoZSBPcHRpb25hbCBBUEkuCi0gICAgPC9wPgotICA8L2Rpdj4KLSAgPGRpdiBjbGFzcz0ibC10d28tdGhpcmQiPgoteyUgaGlnaGxpZ2h0IGphdmEgJX0vLyBXSUNLRVQgNzoKLWFkZChuZXcgQWpheEZhbGxiYWNrTGluazxWb2lkPigid2lja2V0NyIpIHsKLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBvbkNsaWNrKEFqYXhSZXF1ZXN0VGFyZ2V0IHRhcmdldCkgewotICAgICAgICBpZih0YXJnZXQgIT0gbnVsbCkgewotICAgICAgICAgICAgLy8gLi4uCi0gICAgICAgIH0KLSAgICB9Ci19KTsKLS8vIFdJQ0tFVCA4OgotYWRkKG5ldyBBamF4RmFsbGJhY2tMaW5rPFZvaWQ+KCJ3aWNrZXQ4IikgewotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIG9uQ2xpY2soT3B0aW9uYWw8QWpheFJlcXVlc3RUYXJnZXQ+IHRhcmdldCkgewotICAgICAgICBpZih0YXJnZXQuaXNQcmVzZW50KCkpIHsKLSAgICAgICAgICAgIC8vIC4uLgotICAgICAgICB9Ci0gICAgfQotfSk7Ci17JSBlbmRoaWdobGlnaHQgJX0KLSAgPC9kaXY+CiA8L2Rpdj4KIAogPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgotICAgIDxoMz5Nb2RlbHMgYXMgRnVuY3Rpb25hbCBJbnRlcmZhY2U8L2gzPgorICAgIDxoMz5Qcm90ZWN0IHlvdXIgd2ViIGFwcHMgd2l0aCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSAoQ1NQKTwvaDM+CiAgICAgPHA+Ci0gICAgICBXaWNrZXQgdXNlcyBtb2RlbHMgYXMgdGhlIGRhdGFiaW5kaW5nIG1ldGhvZDogZWFjaCBkYXRhLWF3YXJlIGNvbXBvbmVudCBjYW4gdGFrZSBhIG1vZGVsIGltcGxlbWVudGF0aW9uIHRvIHJldHJpZXZlIGFuZCBzdG9yZSBkYXRhIGluLiBGcm9tIFdpY2tldCA4IHdlIGhhdmUgbWFkZSB0aGUgcm9vdCBpbnRlcmZhY2UgSU1vZGVsIGEgZnVuY3Rpb25hbCBpbnRlcmZhY2UuIFlvdSBjYW4gbm93IHVzZSBsYW1iZGFzIHdoZXJlIHlvdSBjYW4gdXNlIG1vZGVscy4KKyAgICAgQXMgdGhlIG51bWJlciBvZiBzZWN1cml0eSB0aHJlYXRzIGdyb3dzLCBpdCdzIGNydWNpYWwgZm9yIHdlYiBhcHBsaWNhdGlvbnMgdG8gYWRvcHQgdGhlIGxhdGVzdCBzZWN1cml0eSBzdGFuZGFyZHMgYW5kIGNvdW50ZXJtZWFzdXJlcy4gQ1NQIGlzIGEgbW9kZXJuIHN0YW5kYXJkIHRoYXQgYWxsb3dzIGFwcGxpY2F0aW9ucyB0byBkZWNsYXJlIGFwcHJvdmVkIG9yaWdpbnMgb2YgY29udGVudCAoc3VjaCBhcyBKYXZhc2NyaXB0LCBDU1MsIGltYWdlcywgZXRjLi4uKSBmb3IgdGhlIGJyb3dzZXIgdG8gbG9hZC4gQ29uc3RydWN0aW5nIGEgc2FmZSBhbmQgYXQgdGhlIHNhbWUgdGltZSBjb21wbGV0ZSBDU1AgY2FuIGJlIGNoYWxsZW5naW5nLiAKKyAgICAgWW91IGVpdGhlciByaXNrIGxlYXZpbmcgaG9sZXMgaW4gdGhlIGRlZmVuc2Ugb2YgeW91ciBhcHBsaWNhdGlvbiBvciB5b3UgYnJlYWsgY2VydGFpbiBmdW5jdGlvbmFsaXR5LiBQcm90ZWN0aW5nIGFnYWluc3QgdW53YW50ZWQgaW5saW5lIHNjcmlwdHMgaXMgdGhlIG1vc3QgaW1wb3J0YW50IHRhcmdldCB0byBhdHRhaW4uIEluIENTUCB0aGlzIGlzIGNhbGxlZCAndW5zYWZlLWlubGluZScgYW5kIGl0J3MgdGhlIG1vc3QgY29tbW9uIGNhdXNlIG9mIGNyb3NzLXNpdGUgc2NyaXB0aW5nIHZ1bG5lcmFiaWxpdGllcy4KICAgICA8L3A+CiAgICAgPHA+Ci0gICAgICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgYmluZHMgYSBMYWJlbCBjb21wb25lbnQgdG8gdGhlIG5hbWUgb2YgYSBwZXJzb24gb2JqZWN0IGluIGRpZmZlcmVudCB3YXlzIHVzaW5nIFdpY2tldCA4OgotICAgIDwvcD4KLXslIGhpZ2hsaWdodCBqYXZhICV9Ci1hZGQobmV3IExhYmVsKCJuYW1lMSIsIHBlcnNvbjo6bmFtZSkpOwotYWRkKG5ldyBMYWJlbCgibmFtZTIiLCAoKSAtPiBwZXJzb24uZ2V0TmFtZSgpKSk7Ci1hZGQobmV3IExhYmVsKCJuYW1lMyIsIExhbWJkYU1vZGVsLm9mKHBlcnNvbk1vZGVsLCBQZXJzb246OmdldE5hbWUpKSk7Ci1hZGQobmV3IExhYmVsKCJuYW1lNCIsCi0gIExhbWJkYU1vZGVsLm9mKGNvbnRyYWN0TW9kZWwsIENvbnRyYWN0OjpnZXRQZXJzb24pCi0gICAgLm1hcChQZXJzb246OmdldE5hbWUpKSk7Ci17JSBlbmRoaWdobGlnaHQgJX0KLSAgICA8cD4KLSAgICAgIFRoZSBuZXcgPGNvZGU+TGFtYmRhTW9kZWw8L2NvZGU+IHR5cGUgaW4gV2lja2V0IGVuYWJsZXMgdHlwZSBzYWZlLCByZWZhY3RvciBzYWZlIGRhdGFiaW5kaW5nIGZvciBjb21wb25lbnRzLiBQcmV2aW91c2x5IG9uZSB3b3VsZCBiaW5kIGRhdGEgdG8gY29tcG9uZW50cyB1c2luZyBQcm9wZXJ0eU1vZGVsLCB1c2luZyBhIHN0cmluZyBleHByZXNzaW9uIHRvIGRldGVybWluZSB0aGUgZXhhY3QgcHJvcGVydHkgdG8gc2hvdy4gVGhlIHN0cmluZyBleHByZXNzaW9uIGlzIHNvbWV0aGluZyBsaWtlIDxjb2RlPiJwZXJzb24ubmFtZSI8L2NvZGU+LiBUaGlzIGlzIGluaGVyZW50bHkgZGlmZmljdWx0IHRvIHJlZmFjdG9yIHdoZW4geW91IGRlY2lkZSB0byBjaGFuZ2UgdGhlIG5hbWUgZmllbGQgaW50byBmb3IgZXhhbXBsZSA8Y29kZT4ibGFzdE5hbWUiPC9jb2RlPi4gV2l0aCA8Y29kZT5MYW1iZGFNb2RlbDwvY29kZT4sIHRoaXMgcmVmYWN0b3JpbmcgaXMgdHJpdmlhbCBmb3IgSURFcyB0byBwZXJmb3JtOiB0aGUgSmF2YSBtZXRob2RzIGNhbiBlYXNpbHkgYmUgcmVuYW1lZCBhbmQgdGhlIElERSB3aWxsIGZpbmQgYWxsIHRoZSByZWZlcmVuY2VzLgotICAgIDwvcD4KLQotICAgIDxwPgotICAgICAgTWljcm9iZW5jaG1hcmtzIGhhdmUgc2hvd24gdGhhdCB1c2luZyBsYW1iZGEgbW9kZWxzIHByb3ZpZGVzIG11Y2ggYmV0dGVyIHBlcmZvcm1hbmNlIHRoYW4gdGhlIHN0cmluZyBiYXNlZCBQcm9wZXJ0eU1vZGVsIGF0IHRoZSBjb3N0IG9mIHNsaWdodGx5IGxhcmdlciBtZW1vcnkgZm9vdHByaW50LgorICAgICBXaWNrZXQgOSBjb21lcyB3aXRoIGZ1bGwgc3VwcG9ydCBmb3IgQ1NQIGFuZCBkb2VzIG5vdCBuZWVkIGFueSB1bnNhZmUgZGlyZWN0aXZlcy4gV2lja2V0IHdpbGwgYXV0b21hdGljYWxseSBhZGQgYSBub25jZSB0byBldmVyeSBoZWFkZXIgY29udHJpYnV0aW9uIGFuZCB3aGl0ZWxpc3QgdGhpcyBub25jZS4gVGhpcyBhbGxvd3MgZm9yIGZsZXhpYmxlIGxvYWRpbmcgb2YgcmVzb3VyY2VzIHdpdGhvdXQgdGhlIG5lZWQgb2YgYSBjb21wbGV4IENTUC4gT2YgY291cnNlIGl0IGlzIHBvc3NpYmxlIHRvIG1vZGlmeSBhbmQgY3VzdG9taXplIHRoZSBDU1AsIGFkZCBhZGRpdGlvbmFsIGRpcmVjdGl2ZXMgb3IgZGlzYWJsZSBpdCBlbnRpcmVseS4gTG9va3VwIG91ciA8YSBocmVmPSJodHRwOi8vd2lja2V0LmFwYWNoZS5vcmcvbGVhcm4vI2d1aWRlIiB0YXJnZXQ9Il9ibGFuayI+ZG9jdW1lbnRhdGlvbjwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24uICAgICAKICAgICA8L3A+CiAgIDwvZGl2PgogPC9kaXY+CiAKKwogPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWhhbGYiPgogICAgIDxoMz5ObyBSZXdyaXRlIE5lY2Vzc2FyeTwvaDM+CkBAIC0xNDIsMjEgKzgxLDIxIEBACiAgICAgPC9wPgogICA8L2Rpdj4KICAgPGRpdiBjbGFzcz0ibC1oYWxmIj4KLSAgICA8aDM+TWlncmF0aW5nIHRvIFdpY2tldCA4PC9oMz4KKyAgICA8aDM+TWlncmF0aW5nIHRvIFdpY2tldCA5PC9oMz4KICAgICA8cD4KLSAgICAgIFdoZW4geW91IG1pZ3JhdGUgZnJvbSBhIHByZXZpb3VzIFdpY2tldCB2ZXJzaW9uIHRvIFdpY2tldCA4LCBhIGZ1bGwgbGlzdCBvZiBjaGFuZ2VzIGFuZCBtaWdyYXRpb25zIGlzIGF2YWlsYWJsZSBhdCB0aGUgZm9sbG93aW5nIHBhZ2U6CisgICAgICBXaGVuIHlvdSBtaWdyYXRlIGZyb20gYSBwcmV2aW91cyBXaWNrZXQgdmVyc2lvbiB0byBXaWNrZXQgOSwgYSBmdWxsIGxpc3Qgb2YgY2hhbmdlcyBhbmQgbWlncmF0aW9ucyBpcyBhdmFpbGFibGUgYXQgdGhlIGZvbGxvd2luZyBwYWdlOgogICAgIDwvcD4KICAgICA8cD4KLSAgICAgIDxhIGhyZWY9Imh0dHBzOi8vcy5hcGFjaGUub3JnL3dpY2tldDhtaWdyYXRlIj5odHRwczovL3MuYXBhY2hlLm9yZy93aWNrZXQ4bWlncmF0ZTwvYT4KKyAgICAgIDxhIGhyZWY9Imh0dHBzOi8vcy5hcGFjaGUub3JnL3dpY2tldDltaWdyYXRlIj5odHRwczovL3MuYXBhY2hlLm9yZy93aWNrZXQ5bWlncmF0ZTwvYT4KICAgICA8L3A+CiAgICAgPHA+Ci0gICAgICBQbGVhc2UgY29uc3VsdCB0aGlzIG1pZ3JhdGlvbiBndWlkZSB3aGVuIHlvdSBhcmUgbW92aW5nIHRvd2FyZHMgV2lja2V0IDguCisgICAgICBQbGVhc2UgY29uc3VsdCB0aGlzIG1pZ3JhdGlvbiBndWlkZSB3aGVuIHlvdSBhcmUgbW92aW5nIHRvd2FyZHMgV2lja2V0IDkuCiAgICAgPC9wPgogICA8L2Rpdj4KIDwvZGl2PgogPGRpdiBjbGFzcz0ibC1maXJzdCBsLWZsZXgiPgogICA8ZGl2IGNsYXNzPSJsLWZ1bGwiPgotICAgIDxoMj5HZXR0aW5nIFN0YXJ0ZWQgd2l0aCBXaWNrZXQgODwvaDI+CisgICAgPGgyPkdldHRpbmcgU3RhcnRlZCB3aXRoIFdpY2tldCA5PC9oMj4KICAgICA8cD4KICAgICAgIEl0IGlzIHZlcnkgZWFzeSB0byBnZXQgc3RhcnRlZCB3aXRoIFdpY2tldDogdXNlIG91ciA8YSBocmVmPSIvc3RhcnQvcXVpY2tzdGFydC5odG1sIj5xdWljay1zdGFydCB3aXphcmQ8L2E+IG9yIAogICAgICAgdXNlIG9uZSBvZiB0aGUgb3B0aW9ucyBiZWxvdy4KQEAgLTE3Miw3ICsxMTEsNyBAQAogPGRlcGVuZGVuY3k+CiAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS53aWNrZXQ8L2dyb3VwSWQ+CiAgICAgPGFydGlmYWN0SWQ+d2lja2V0LWNvcmU8L2FydGlmYWN0SWQ+Ci0gICAgPHZlcnNpb24+e3tzaXRlLndpY2tldC52ZXJzaW9uXzgwfX08L3ZlcnNpb24+CisgICAgPHZlcnNpb24+e3tzaXRlLndpY2tldC52ZXJzaW9uXzkwfX08L3ZlcnNpb24+CiA8L2RlcGVuZGVuY3k+CiB7JSBlbmRoaWdobGlnaHQlfQogICA8L2Rpdj4KQEAgLTE4Myw4ICsxMjIsOCBAQAogICAgICAgY29udmVuaWVuY2UgYmluYXJ5IHBhY2thZ2UKICAgICA8L3A+CiAgICAgPHVsPgotICAgICAgPGxpPlNvdXJjZTogPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2R5bi9jbG9zZXIuY2dpL3dpY2tldC97e3NpdGUud2lja2V0LnZlcnNpb25fODB9fSI+e3tzaXRlLndpY2tldC52ZXJzaW9uXzgwfX0gc291cmNlIGRvd25sb2FkPC9hPjwvbGk+Ci0gICAgICA8bGk+QmluYXJ5OiA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZHluL2Nsb3Nlci5jZ2kvd2lja2V0L3t7c2l0ZS53aWNrZXQudmVyc2lvbl84MH19L2JpbmFyaWVzIj57e3NpdGUud2lja2V0LnZlcnNpb25fODB9fSBiaW5hcnkgZG93bmxvYWQ8L2E+PC9saT4KKyAgICAgIDxsaT5Tb3VyY2U6IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9keW4vY2xvc2VyLmNnaS93aWNrZXQve3tzaXRlLndpY2tldC52ZXJzaW9uXzkwfX0iPnt7c2l0ZS53aWNrZXQudmVyc2lvbl85MH19IHNvdXJjZSBkb3dubG9hZDwvYT48L2xpPgorICAgICAgPGxpPkJpbmFyeTogPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2R5bi9jbG9zZXIuY2dpL3dpY2tldC97e3NpdGUud2lja2V0LnZlcnNpb25fOTB9fS9iaW5hcmllcyI+e3tzaXRlLndpY2tldC52ZXJzaW9uXzkwfX0gYmluYXJ5IGRvd25sb2FkPC9hPjwvbGk+CiAgICAgPC91bD4KICAgPC9kaXY+CiA8L2Rpdj4KQEAgLTI4Nyw0ICsyMjYsNCBAQAogPC9kaXY+CiA8ZGl2IGNsYXNzPSJsLWZpcnN0Ij4KIDwvZGl2PgotPGhyLz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8aHIvPgo=