PD9waHAgIAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCSRBcHAgCT0gbmV3IEFwcCgpOwkkTmF2CT0gbmV3IE5hdigpOwkkTWVudSAJPSBuZXcgTWVudSgpOwkJaW5jbHVkZSgiX3Byb2plY3RDb21tb24ucGhwIik7ICAgICMgQWxsIG9uIHRoZSBzYW1lIGxpbmUgdG8gdW5jbHV0dGVyIHRoZSB1c2VyJ3MgZGVza3RvcCcKCgojCiMgQmVnaW46IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MuICBDaGFuZ2UgdGhlc2UuCiRwYWdlVGl0bGUgCQk9ICJFY2xpcHNlIG1ldCBlbiCcdXZyZSBzYSBzdHJhdOlnaWUgYW5udWVsbGUgZGUgbGFuY2VtZW50IjsKJHBhZ2VLZXl3b3Jkcwk9ICJlY2xpcHNlLCBlbWJlZGRlZCwgRVNDLCBtb2JpbGUiOwokcGFnZUF1dGhvcgkJPSAiSWFuIFNrZXJyZXR0IjsKCiMgQWRkIHBhZ2Utc3BlY2lmaWMgTmF2IGJhcnMgaGVyZQojIEZvcm1hdCBpcyBMaW5rIHRleHQsIGxpbmsgVVJMIChjYW4gYmUgaHR0cDovL3d3dy5zb21lb3RoZXJzaXRlLmNvbS8pLCB0YXJnZXQgKF9zZWxmLCBfYmxhbmspCiMgJE5hdi0+YWRkQ3VzdG9tTmF2KCJNeSBMaW5rIiwgIm15cGFnZS5waHAiLCAiX3NlbGYiKTsKIyAkTmF2LT5hZGRDdXN0b21OYXYoIkdvb2dsZSIsICJodHRwOi8vd3d3Lmdvb2dsZS5jb20vIiwgIl9ibGFuayIpOwoKIyBFbmQ6IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MKIwoKIyBQYXN0ZSB5b3VyIEhUTUwgY29udGVudCBiZXR3ZWVuIHRoZSBFT0hUTUwgbWFya2VycyEKb2Jfc3RhcnQoKTsKPz4KCQk8c3R5bGU+CgkJLnBhZGRlZGxpc3Qge21hcmdpbi1sZWZ0OjIwcHg7bWFyZ2luLXRvcDotMTBweDt9CgkJLnBhZGRlZGxpc3QgbGkge3BhZGRpbmctYm90dG9tOjNweDsgfQoJCXAge3BhZGRpbmctYm90dG9tOjEwcHg7fQoJCTwvc3R5bGU+CjxkaXYgaWQ9IndpZGVjb250ZW50Ij4KCTxkaXYgaWQ9Im1pZGNvbHVtbndpZGUiPgoJCTxoMj5QcmVzcyBSZWxlYXNlPC9oMj4KCgkJPGNlbnRlcj4KCQk8aDE+PD89JHBhZ2VUaXRsZT8+PC9oMT4KCQk8L2NlbnRlcj4KCQk8aDI+TGUgbGFuY2VtZW50IEdhbnltZWRlIGNvbXByZW5kIDIzIOlxdWlwZXMgZGUgcHJvamV0IGV0IDE4IG1pbGxpb25zIGRlIGxpZ25lcyBkZSBjb2RlPC9oMj4KCQkKCQk8cD48c3Ryb25nPk9UVEFXQSwgQ2FuYWRhLCBqdWluIDI1LCAyMDA4ICAtIDwvc3Ryb25nPiBMYSBGb25kYXRpb24gRWNsaXBzZSBldCBskmVuc2VtYmxlIGRlIGxhIGNvbW11bmF1dOkgRWNsaXBzZSBzb250IGhldXJldXggZJJhbm5vbmNlciBsZSBsYW5jZW1lbnQgR2FueW1lZGUsIGxhIHN0cmF06WdpZSBhbm51ZWxsZSBkZSBsYW5jZW1lbnQgZOl2ZWxvcHDpZSBwYXIgbGEgY29tbXVuYXV06SBFY2xpcHNlLiBHYW55bWVkZSBlc3QgdW4gbGFuY2VtZW50IGNvb3Jkb25u6SBkZSAyMyDpcXVpcGVzIGRlIHByb2pldCBFY2xpcHNlIGRpZmbpcmVudGVzIHF1aSByZXBy6XNlbnRlIHBsdXMgZGUgMTggbWlsbGlvbnMgZGUgbGlnbmVzIGRlIGNvZGUuPC9wPgoJCTxwPkdhbnltZWRlIHByb3Bvc2UgZGVzIGFt6Wxpb3JhdGlvbnMgZXQgZGVzIGNhcmFjdOlyaXN0aXF1ZXMgY2zpcyBkYW5zIGxlcyBzZWN0ZXVycyBzdWl2YW50cyA6CgkJCTx1bCBjbGFzcz0icGFkZGVkbGlzdCI+CgkJCQk8bGk+UHJvamV0cyBFcXVpbm94IGV0IFJ1bnRpbWU8L2xpPgoJCQkJPGxpPkNhcmFjdOlyaXN0aXF1ZXMgZGUgbW9k6Wxpc2F0aW9uPC9saT4KCQkJCTxsaT5PdXRpbHMgZGUgZOl2ZWxvcHBlbWVudDwvbGk+CgkJCQk8bGk+U291dGllbiBwb3VyIGySYXJjaGl0ZWN0dXJlIGF46WUgc3VyIGxlcyBzZXJ2aWNlcyAgPC9saT4KCQkJPC91bD4KCQk8L3A+ICAKCQk8cD48c3Ryb25nPkRpc3BvbmliaWxpdOk8L3N0cm9uZz48YnIvPgoJCSAgICBMZXMgcHJvamV0cyBkdSBsYW5jZW1lbnQgR2FueW1lZGUgcGV1dmVudCBk6XNvcm1haXMg6nRyZSB06WzpY2hhcmfpcy4gU2VwdCBmb3JmYWl0cyBFY2xpcHNlIG9udCDpdOkgY3Lp6XMgYWZpbiBkZSBwZXJtZXR0cmUgYXV4IGTpdmVsb3BwZXVycyBkZSB06WzpY2hhcmdlciBwbHVzIGZhY2lsZW1lbnQgZGVzIHByb2pldHMgbXVsdGlwbGVzLiBQb3VyIGRlIHBsdXMgYW1wbGVzIHJlbnNlaWduZW1lbnRzLCB2ZXVpbGxleiBjb25zdWx0ZXIgbGUgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9nYW55bWVkZSI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9nYW55bWVkZTwvYT4uCgkJPC9wPgoJCTxwPjxzdHJvbmc+Q2l0YXRpb25zIOAgbJJhcHB1aTwvc3Ryb25nPjxici8+CgkJCSJVbmUgZm9pcyBkZSBwbHVzLCBsYSBjb21tdW5hdXTpIEVjbGlwc2UgYSBtaXMgZW4gnHV2cmUgc2Egc3RyYXTpZ2llIGFubnVlbGxlIGRlIGxhbmNlbWVudCBldCBjb250aW51ZSDgIG9mZnJpciBkZXMgbG9naWNpZWxzIG5vdmF0ZXVycyBkZSBtYW5p6HJlIHBy6XZpc2libGUiLCBhIGTpY2xhcukgTWlrZSBNaWxpbmtvdmljaCwgZGlyZWN0ZXVyIGfpbulyYWwgZGUgbGEgRm9uZGF0aW9uIEVjbGlwc2UuICJMZXMgbm91dmVsbGVzIGNhcmFjdOlyaXN0aXF1ZXMsIGNvbW1lIGxlIHN5c3TobWUgZJJhcHByb3Zpc2lvbm5lbWVudCBFcXVpbm94IHAyLCBsZXMgbm91dmVhdXggb3V0aWxzIGRlIG1vZOlsaXNhdGlvbiBldCBsZXMgb3V0aWxzIGRlc3RpbulzIGF1eCBk6XZlbG9wcGV1cnMgZJJhcmNoaXRlY3R1cmUgYXjpZSBzdXIgbGVzIHNlcnZpY2VzLCBzZXJvbnQgcG9wdWxhaXJlcyBhdXBy6HMgZGVzIHV0aWxpc2F0ZXVycyBkkkVjbGlwc2UuIgoJCTwvcD4KCQk8cD4gICAgTGUgbGFuY2VtZW50IEdhbnltZWRlIGZpZ3VyZXJhIHBhcm1pIGxlcyBwcmluY2lwYXV4IHN1amV0cyBhYm9yZOlzIGxvcnMgZHUgRWNsaXBzZSBTdW1taXQgRXVyb3BlICg8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2VzdW1taXQub3JnL3N1bW1pdGV1cm9wZTIwMDgiPmh0dHA6Ly93d3cuZWNsaXBzZXN1bW1pdC5vcmcvc3VtbWl0ZXVyb3BlMjAwODwvYT4pLCBxdWkgYXVyYSBsaWV1IGxlcyAxOSBldCAyMCBub3ZlbWJyZSAyMDA4IOAgTHVkd2lnc2J1cmcsIGVuIEFsbGVtYWduZS4KCQk8L3A+CSAKCQkKCQk8cD48c3Ryb25nPsAgcHJvcG9zIGRlIGxhIEZvbmRhdGlvbiBFY2xpcHNlPC9zdHJvbmc+PGJyIC8+CgkJRGVzIHJlbnNlaWduZW1lbnRzIGF1IHN1amV0IGSSRWNsaXBzZSBzb250IGRpc3BvbmlibGVzIGF1IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj53d3cuZWNsaXBzZS5vcmc8L2E+PC9wPgoJCTxiciAvPgoJCTxjZW50ZXI+IyAjICM8L2NlbnRlcj4gCgkJPGJyIC8+VG91cyBsZXMgbm9tcyBkZSBwcm9kdWl0cy9zb2Np6XTpcyBldCBsZXMgbWFycXVlcyBkZSBzZXJ2aWNlIHBldXZlbnQg6nRyZSBkZXMgbWFycXVlcyBkZSBjb21tZXJjZSBvdSBkZXMgbWFycXVlcyBkZSBjb21tZXJjZSBlbnJlZ2lzdHLpZXMgZGUgbGV1cnMgc29jael06XMgcmVzcGVjdGl2ZXMuCgkJCgkJPHA+PGI+Q29udGFjdCBwb3VyIGxlcyBt6WRpYXM6PC9iPjxicj4KCQlDaGFudGFsIFlhbmc8YnI+CgkJUGFnZSBPbmUgUHVibGljIFJlbGF0aW9uczxicj4KCQkrMS02NTAtNTY1LTk4MDAsIHBvc3RlIDc1Mjxicj4KCQk8YSBocmVmPSJtYWlsdG86Y2hhbnRhbEBwYWdlb25lcHIuY29tIj5jaGFudGFsQHBhZ2VvbmVwci5jb208L2E+PGJyPgoJCTxicj4KCTwvZGl2Pgo8L2Rpdj4KCgo8PyAKCSRodG1sID0gb2JfZ2V0X2NsZWFuKCk7CgkjIEdlbmVyYXRlIHRoZSB3ZWIgcGFnZQoJJEFwcC0+Z2VuZXJhdGVQYWdlKCR0aGVtZSwgJE1lbnUsICROYXYsICRwYWdlQXV0aG9yLCAkcGFnZUtleXdvcmRzLCAkcGFnZVRpdGxlLCAkaHRtbCk7Cj8+Cgo=