PCFkb2N0eXBlIGh0bWwgcHVibGljICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4NCg0KPGh0bWw+DQoNCjxoZWFkPg0KDQogICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPg0KDQogICA8bWV0YSBuYW1lPSJBdXRob3IiIGNvbnRlbnQ9IkVjbGlwc2UgUHJvamVjdCBQTUMiPg0KDQogICA8bWV0YSBuYW1lPSJHRU5FUkFUT1IiIGNvbnRlbnQ9Ik1pY3Jvc29mdCBGcm9udFBhZ2UgNC4wIj4NCg0KICAgPG1ldGEgbmFtZT0iUHJvZ0lkIiBjb250ZW50PSJGcm9udFBhZ2UuRWRpdG9yLkRvY3VtZW50Ij4NCg0KICAgPHRpdGxlPkVjbGlwc2UgUHJvamVjdCBEcmFmdCAyLjEgUGxhbjwvdGl0bGU+DQoNCiAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZGVmYXVsdF9zdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIj4NCg0KPC9oZWFkPg0KDQo8Ym9keT4NCg0KDQoNCjxoMT4NCg0KRWNsaXBzZSBQcm9qZWN0PGJyPg0KRFJBRlQgMi4xIFBsYW48L2gxPg0KDQo8cD5MYXN0IHJldmlzZWQgRnJpZGF5LCBGZWJydWFyeSAyMSwgMjAwMyAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4gDQogIG1hcmtzIGludGVyZXN0aW5nIGNoYW5nZXMgc2luY2UgdGhlIDxhIGhyZWY9ImVjbGlwc2VfcHJvamVjdF9wbGFuXzJfMV8yMDAzMDEyOS5odG1sIj5wcmV2aW91cyANCiAgZHJhZnQgb2YgSmFuLiAyOSwgMjAwMzwvYT4pPGJyPg0KPGJyPg0KPGk+Jm5ic3A7Jm5ic3A7Jm5ic3A7IFBsZWFzZSBzZW5kIGNvbW1lbnRzIGFib3V0IHRoaXMgZHJhZnQgcGxhbiB0byB0aGUgPC9pPjxhIGhyZWY9Im1haWx0bzplY2xpcHNlLWRldkBlY2xpcHNlLm9yZyI+ZWNsaXBzZS1kZXZAZWNsaXBzZS5vcmc8L2E+DQo8aT5kZXZlbG9wZXIgbWFpbGluZyBsaXN0LjwvaT4gPC9wPg0KDQo8cD5UaGlzIGRvY3VtZW50IGxheXMgb3V0IHRoZSBmZWF0dXJlIGFuZCBBUEkgc2V0IGZvciB0aGUgbmV4dCBmZWF0dXJlIHJlbGVhc2UgDQogIG9mIEVjbGlwc2UsIGRlc2lnbmF0ZWQgcmVsZWFzZSAyLjEuIA0KPHA+UGxhbnMgZG8gbm90IG1hdGVyaWFsaXplIG91dCBvZiBub3doZXJlLCBub3IgYXJlIHRoZXkgZW50aXJlbHkgc3RhdGljLiBUbyBtYWtlIA0KICB0aGUgcGxhbm5pbmcgcHJvY2VzcyBtb3JlIHRyYW5zcGFyZW50IGFuZCBvcGVuIHRvIHRoZSBFY2xpcHNlIGNvbW11bml0eSwgd2UgDQogICh0aGUgRWNsaXBzZSBQTUMpIHBvc3RlZCB0aGUgcGxhbiBpbiBhbiBlbWJyeW9uaWMgZm9ybSBhbmQgYXJlIHJldmlzaW5nIA0KICBpdCB0aHJvdWdob3V0IHRoZSByZWxlYXNlIGN5Y2xlLg0KPHA+VGhlIGZpcnN0IHBhcnQgb2YgdGhlIHBsYW4NCmRlYWxzIHdpdGggdGhlIGltcG9ydGFudCBtYXR0ZXJzIG9mIHJlbGVhc2UgZGVsaXZlcmFibGVzLCByZWxlYXNlIG1pbGVzdG9uZXMsDQp0YXJnZXQgb3BlcmF0aW5nIGVudmlyb25tZW50cywgYW5kIHJlbGVhc2UtdG8tcmVsZWFzZSBjb21wYXRpYmlsaXR5LiBUaGVzZSBhcmUNCmFsbCB0aGluZ3MgdGhhdCBuZWVkIHRvIGJlIGNsZWFyIGZvciBhbnkgcmVsZWFzZSwgZXZlbiBpZiBubyBmZWF0dXJlcyB3ZXJlIHRvDQpjaGFuZ2UuJm5ic3A7PHA+VGhlIHJlbWFpbmRlciBvZiB0aGUgcGxhbiBjb25zaXN0cyBvZiBwbGFuIGl0ZW1zIGZvciB0aGUgdmFyaW91cw0KRWNsaXBzZSBzdWJwcm9qZWN0cy4gRWFjaCBwbGFuIGl0ZW0gY292ZXJzIGEgZmVhdHVyZSBvciBBUEkgdGhhdCBpcyB0byBiZSBhZGRlZA0KdG8gRWNsaXBzZSwgb3Igc29tZSBhc3BlY3Qgb2YgRWNsaXBzZSB0aGF0IGlzIHRvIGJlIGltcHJvdmVkLiBFYWNoIHBsYW4gaXRlbSBoYXMNCmEgdGl0bGUgYW5kIGEgY29uY2lzZSBzdW1tYXJ5ICh1c3VhbGx5IGEgc2luZ2xlIHBhcmFncmFwaCkgdGhhdCBleHBsYWlucyB0aGUNCndvcmsgaXRlbSBhdCBhIHN1aXRhYmx5IGhpZ2ggZW5vdWdoIGxldmVsIHNvIHRoYXQgZXZlcnlvbmUgY2FuIHJlYWRpbHkNCnVuZGVyc3RhbmQgd2hhdCB0aGUgd29yayBpdGVtIGlzIHdpdGhvdXQgaGF2aW5nIHRvIHVuZGVyc3RhbmQgdGhlIG5pdHR5LWdyaXR0eQ0KZGV0YWlscyAod2hpY2ggY2FuIGJlIGhhc2hlZCBvdXQgZWxzZXdoZXJlKS4mbmJzcDsNCjxwPk5vdCBhbGwgcGxhbiBpdGVtcyByZXByZXNlbnQgdGhlIHNhbWUgYW1vdW50IG9mIHdvcms7IHNvbWUgbWF5IGJlIHF1aXRlIGxhcmdlLCANCiAgb3RoZXJzLCBxdWl0ZSBzbWFsbC4gU29tZSBwbGFuIGl0ZW1zIG1heSBpbnZvbHZlIHdvcmsgdGhhdCBpcyBsb2NhbGl6ZWQgdG8gYSANCiAgc2luZ2xlIFBsYXRmb3JtIGNvbXBvbmVudDsgb3RoZXJzIG1heSBpbnZvbHZlIGNvb3JkaW5hdGVkIGNoYW5nZXMgdG8gc2V2ZXJhbCANCiAgY29tcG9uZW50czsgb3RoZXIgbWF5IHBlcnZhZGUgdGhlIGVudGlyZSBQbGF0Zm9ybS4NCjxwPldpdGggdGhlIHByZXZpb3VzIHJlbGVhc2UgYXMgdGhlIHN0YXJ0aW5nIHBvaW50LCB0aGlzIGlzIHRoZSBwbGFuIGZvciBob3cgd2UgDQogIHdpbGwgZW5oYW5jZSBhbmQgaW1wcm92ZSBpdC4gRml4aW5nIGJ1Z3MsIGltcHJvdmluZyB0ZXN0IGNvdmVyYWdlLCBkb2N1bWVudGF0aW9uLCANCiAgZXhhbXBsZXMsIGV0Yy4gYXJlIGNvbnNpZGVyZWQgcm91dGluZSBvbmdvaW5nIG1haW50ZW5hbmNlIGFjdGl2aXRpZXMgYW5kIGFyZSANCiAgbm90IGluY2x1ZGVkIGluIHRoaXMgcGxhbiB1bmxlc3MgdGhleSB3b3VsZCBhbHNvIGludm9sdmUgYSBzaWduaWZpY2FudCBjaGFuZ2UgDQogIHRvIHRoZSBBUEkgb3IgZmVhdHVyZSBzZXQsIG9yIGludm9sdmUgYSBzaWduaWZpY2FudCBhbW91bnQgb2Ygd29yay4gQWxsIGludGVyZXN0aW5nIA0KICBmZWF0dXJlIHdvcmsgaXMgYWNjb3VudGVkIGZvciBpbiB0aGlzIHBsYW4uDQo8cD5UaGUgY3VycmVudCBzdGF0dXMgb2YgZWFjaCBwbGFuIGl0ZW0gaXMNCm5vdGVkOg0KPHVsPg0KICA8bGk+PGI+UHJvcG9zZWQ8L2I+IHBsYW4gaXRlbSAtIEEgcHJvcG9zYWwgZm9yIGFuIGFzcGVjdCB0byB3b3JrIG9uIGZvciB0aGUNCiAgICByZWxlYXNlLiBBZnRlciBkdWUgY29uc2lkZXJhdGlvbiwgYSBwcm9wb3NhbCB3aWxsIGVpdGhlciBiZSBjb21taXR0ZWQsDQogICAgcmVqZWN0ZWQsIG9yIGRlZmVycmVkLjwvbGk+DQogIDxsaT48Yj5Db21taXR0ZWQ8L2I+IHBsYW4gaXRlbSAtIEEgY29tbWl0dGVkIHBsYW4gaXRlbSBpcyBvbmUgdGhhdCB3ZSBoYXZlIGRlY2lkZWQgDQogICAgdG8gYWRkcmVzcyBmb3IgdGhlIHJlbGVhc2UuPC9saT4NCiAgPGxpPjxiPkRlZmVycmVkPC9iPiBwbGFuIGl0ZW0gLSBBIHJlYXNvbmFibGUgcHJvcG9zYWwgdGhhdCBkaWQgbm90IG1ha2UgaXQgaW4gDQogICAgdG8gdGhpcyByZWxlYXNlIGZvciBzb21lIHJlYXNvbiBpcyBtYXJrZWQgYXMgZGVmZXJyZWQgd2l0aCBhIGJyaWVmIG5vdGUgYXMgDQogICAgdG8gd2h5IHRoZXkgd2VyZSBkZWZlcnJlZC4gRGVmZXJyZWQgcGxhbiBpdGVtcyBtYXkgcmVzdXJmYWNlIGFzIHByb3Bvc2VkIHBsYW4gDQogICAgaXRlbXMgYXQgYSBsYXRlciBwb2ludC48L2xpPg0KICA8bGk+PGI+UmVqZWN0ZWQ8L2I+IHBsYW4gaXRlbSAtIFBsYW4gaXRlbXMgdGhhdCB3ZXJlIHByb3Bvc2VkIGJ1dCBqdWRnZWQgdW53b3JrYWJsZSANCiAgICBhcmUgbWFya2VkIGFzIHJlamVjdGVkIHBsYW4gaXRlbXMsIHdpdGggYW4gYWNjb21wYW55aW5nIHN1bW1hcnkgb2Ygd2h5IHRoZXkgDQogICAgd2VyZSBkaXNtaXNzZWQuIEtlZXBpbmcgdHJhY2sgb2YgcmVqZWN0ZWQgaXRlbXMgYXZvaWRzIHJlcGVhdGluZyB0aGUgZGlzY3Vzc2lvbi48L2xpPg0KPC91bD4NCjxoMj5SZWxlYXNlIGRlbGl2ZXJhYmxlczwvaDI+DQoNCjxwPlRoZSByZWxlYXNlIGRlbGl2ZXJhYmxlcyBoYXZlIHRoZSBzYW1lIGZvcm0gYXMgcHJldmlvdXMgcmVsZWFzZXMsIG5hbWVseToNCg0KPHVsPg0KDQogIDxsaT5Tb3VyY2UgY29kZSByZWxlYXNlIGZvciBFY2xpcHNlIFByb2plY3QsIGF2YWlsYWJsZSBhcyB2ZXJzaW9ucyB0YWdnZWQgJnF1b3Q7UjJfMSZxdW90OyANCiAgICBpbiB0aGUgRWNsaXBzZSBQcm9qZWN0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuZWNsaXBzZS5vcmcvdmlld2N2cy8iPkNWUyByZXBvc2l0b3J5PC9hPi48L2xpPg0KDQogIDxsaT5FY2xpcHNlIFByb2plY3QgU0RLIChpbmNsdWRlcyBQbGF0Zm9ybSwgSkRULCBhbmQgUERFIHNvdXJjZSB6aXBzKQ0KDQogICAgKGRvd25sb2FkYWJsZSkuPC9saT4NCg0KICA8bGk+RWNsaXBzZSBQbGF0Zm9ybSBydW50aW1lIGJpbmFyeSBkaXN0cmlidXRpb24gKGRvd25sb2FkYWJsZSkuPC9saT4NCg0KICA8bGk+SkRUIHJ1bnRpbWUgYmluYXJ5IGRpc3RyaWJ1dGlvbiAoZG93bmxvYWRhYmxlKS48L2xpPg0KDQogIDxsaT5FY2xpcHNlIFNESyBFeGFtcGxlcyAoZG93bmxvYWRhYmxlKS48L2xpPg0KDQo8L3VsPg0KDQo8aDI+PGEgbmFtZT0iTWlsZXN0b25lcyI+PC9hPlJlbGVhc2UgbWlsZXN0b25lczwvaDI+DQoNCjxwPlJlbGVhc2UgbWlsZXN0b25lIG9jY3VycmluZyBhdCByb3VnaGx5IG1vbnRobHkgaW50ZXJ2YWxzIGV4aXN0IHRvIGZhY2lsaXRhdGUNCmNvYXJzZS1ncmFpbmVkIHBsYW5uaW5nIGFuZCBzdGFnaW5nLiBUaGUgbWlsZXN0b25lcyBmb3IgdGhpcyByZWxlYXNlIGFyZTo8L3A+DQoNCjx1bD4NCiAgPGxpPlNlcHRlbWJlciAyMCwgMjAwMiAtIE1pbGVzdG9uZSAxIC0gKDIuMSBNMSkgLSBzdGFibGUgYnVpbGQgcmVmbGVjdGluZyBwcm9ncmVzczwvbGk+DQogIDxsaT5PY3RvYmVyIDE4LCAyMDAyIC0gTWlsZXN0b25lIDIgLSAoMi4xIE0yKSAtIHN0YWJsZSBidWlsZCByZWZsZWN0aW5nIHByb2dyZXNzPC9saT4NCiAgPGxpPk5vdmVtYmVyIDE1LCAyMDAyIC0gTWlsZXN0b25lIDMgLSAoMi4xIE0zKSAtIHN0YWJsZSBidWlsZCByZWZsZWN0aW5nDQogICAgcHJvZ3Jlc3M8L2xpPg0KICA8bGk+RGVjZW1iZXIgMTMsIDIwMDIgW2RlbGF5ZWQgdG8gRGVjZW1iZXIgMThdIC0gTWlsZXN0b25lIDQgLSAoMi4xIE00KSAtIHN0YWJsZSANCiAgICBidWlsZCByZWZsZWN0aW5nIHByb2dyZXNzPC9saT4NCiAgPGxpPkZlYnJ1YXJ5IDcsJm5ic3A7MjAwMyAtIE1pbGVzdG9uZSA1IC0gKDIuMSBNNSkgLSBzdGFibGUgYnVpbGQgLSBmZWF0dXJlIA0KICAgIGNvbXBsZXRlIC0gZGV2ZWxvcG1lbnQgZnJlZXplPC9saT4NCjwvdWw+DQo8cD5Mb2NrIGRvd24gYW5kIHRlc3RpbmcgdGhlbiBiZWdpbnMgd2l0aCBNNSwgYW5kIHByb2dyZXNzIHRocm91Z2ggYSBzZXJpZXMgb2YgDQogIHRlc3QtZml4IHBhc3NlcyBhZ2FpbnN0IGNhbmRpZGF0ZXMgcmVsZWFzZXMuIFJlbGVhc2UgY2FuZGlkYXRlIGJ1aWxkcyBhcmUgcGxhbm5lZCANCiAgYXMgZm9sbG93cyAoTTUgaXMgcmVsZWFzZSBjYW5kaWRhdGUgMCk6PC9wPg0KDQo8dWw+DQogIDxsaT5GcmlkYXkgRmVicnVhcnkgMjEsIDIwMDMgLSBSZWxlYXNlIENhbmRpZGF0ZSAxIC0gKDIuMSBSQzEpPC9saT4NCiAgPGxpPkZyaWRheSBNYXJjaCA3LCAyMDAzIC0gUmVsZWFzZSBDYW5kaWRhdGUgMiAtICgyLjEgUkMyKTwvbGk+DQogIDxsaT5GcmlkYXkgTWFyY2ggMTQsIDIwMDMgLSBSZWxlYXNlIENhbmRpZGF0ZSAzIC0gKDIuMSBSQzMpPC9saT4NCjwvdWw+DQoNCjxwPiBEZXBlbmRpbmcgb24gdGhlIGNpcmN1bXN0YW5jZXMsIHdlIG1heSBhZGQgYWRkaXRpb25hbCByZWxlYXNlIGNhbmRpZGF0ZSBidWlsZHMgDQogIG9yIGZpbmUtdHVuZSB0aGUgc2NoZWR1bGUuIFRoZSAyLjEgcmVsZWFzZSBpcyB0YXJnZXRlZCBmb3IgRnJpZGF5IE1hcmNoIDI4LCANCiAgMjAwMy4gU2VlIHRoZSA8YSBocmVmPSJodHRwOi8vZGV2LmVjbGlwc2Uub3JnL3ZpZXdjdnMvaW5kZXguY2dpLyU3RWNoZWNrb3V0JTdFL2VjbGlwc2UtcHJvamVjdC1ob21lL3BsYW5zL2ZyZWV6ZV9wbGFuXzJfMS5odG1sIj5FY2xpcHNlIA0KICAyLjEgRW5kZ2FtZSBQbGFuPC9hPiBmb3IgZnVydGhlciBkZXRhaWxzLiBBbGwgcmVsZWFzZSBkZWxpdmVyYWJsZXMgd2lsbCBiZSBhdmFpbGFibGUgDQogIGZvciBkb3dubG9hZCBhcyBzb29uIGFzIHRoZSByZWxlYXNlIGhhcyBiZWVuIHRlc3RlZCBhbmQgdmFsaWRhdGVkIGluIHRoZSB0YXJnZXQgDQogIG9wZXJhdGluZyBjb25maWd1cmF0aW9ucyBsaXN0ZWQgYmVsb3cuPC9wPg0KPGgyPlRhcmdldCBPcGVyYXRpbmcgRW52aXJvbm1lbnRzPC9oMj4NCg0KDQoNCjxwPkluIG9yZGVyIHRvIHJlbWFpbiBjdXJyZW50LCBlYWNoIEVjbGlwc2UgcmVsZWFzZSB0YXJnZXRzIHJlYXNvbmFibHkgY3VycmVudA0KdmVyc2lvbnMgb2YgdGhlIHVuZGVybHlpbmcgb3BlcmF0aW5nIGVudmlyb25tZW50cy48L3A+DQoNCjxwPk1vc3Qgb2YgdGhlIEVjbGlwc2UgU0RLIGlzICZxdW90O3B1cmUmcXVvdDsgSmF2YSZ0cmFkZTsgY29kZSBhbmQgaGFzIG5vIGRpcmVjdA0KZGVwZW5kZW5jZSBvbiB0aGUgdW5kZXJseWluZyBvcGVyYXRpbmcgc3lzdGVtLiBUaGUgY2hpZWYgZGVwZW5kZW5jZSBpcyB0aGVyZWZvcmUNCm9uIHRoZSBKYXZhIDIgUGxhdGZvcm0gaXRzZWxmLiBUaGUgMi4xIHJlbGVhc2Ugb2YgdGhlIEVjbGlwc2UgUHJvamVjdCBpcyB3cml0dGVuDQphbmQgY29tcGlsZWQgYWdhaW5zdCB2ZXJzaW9uIDEuMyBvZiB0aGUgSmF2YSAyIFBsYXRmb3JtIEFQSXMsIGFuZCB0YXJnZXRlZCB0bw0KcnVuIG9uIGVpdGhlciB2ZXJzaW9uIDEuMyBvciAxLjQgb2YgdGhlIEphdmEgMiBSdW50aW1lIEVudmlyb25tZW50LCBTdGFuZGFyZA0KRWRpdGlvbi48L3A+DQo8cD5FY2xpcHNlIFNESyAyLjEgd2lsbCBiZSB0ZXN0ZWQgYW5kIHZhbGlkYXRlZCBvbiB0aGUgZm9sbG93aW5nIEphdmEgMg0KUGxhdGZvcm0gaW1wbGVtZW50YXRpb25zOjwvcD4NCjx0YWJsZSB3aWR0aD0iOTElIiBib3JkZXI9IjEiPg0KICA8dGJvZHk+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiPjxiPk9wZXJhdGluZyBzeXN0ZW08L2I+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTglIj48Yj5Qcm9jZXNzb3IgYXJjaGl0ZWN0dXJlPC9iPjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjczJSI+PGI+SmF2YSAyIFBsYXRmb3JtczwvYj48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiIHJvd1NwYW49IjQiPk1pY3Jvc29mdK48YnI+DQogICAgICAgIFdpbmRvd3OuPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTglIiByb3dTcGFuPSI0Ij5JbnRlbCB4ODY8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI3MyUiPiBTdW4gSmF2YSAyIFNESywgU3RhbmRhcmQgRWRpdGlvbiwgdmVyc2lvbiAxLjMuMV8wNiBmb3IgDQogICAgICAgIE1pY3Jvc29mdCBXaW5kb3dzPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj4gU3VuIEphdmEgMiBTREssIFN0YW5kYXJkIEVkaXRpb24sIHZlcnNpb24gMS40LjFfMDEgZm9yIA0KICAgICAgICBNaWNyb3NvZnQgV2luZG93czwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjczJSI+IDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+IElCTSANCiAgICAgICAgRGV2ZWxvcGVyIEtpdCBmb3IgV2luZG93cywgSmF2YSAyIFRlY2hub2xvZ3kgRWRpdGlvbiwgdmVyc2lvbiAxLjMuMSBTUi0yIA0KICAgICAgICAocGVuZGluZyBmaXggdG8gVk0gZGVmZWN0IHVuY292ZXJlZCBpbiBTUi0zKTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjczJSI+IElCTSAzMi1iaXQgU0RLIGZvciBXaW5kb3dzLCBKYXZhIDIgVGVjaG5vbG9neSBFZGl0aW9uLCANCiAgICAgICAgdmVyc2lvbiAxLjQuMDwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjIxJSIgcm93U3Bhbj0iMyI+TGludXg8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOCUiIHJvd1NwYW49IjMiPkludGVsIHg4NjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjczJSI+IFN1biBKYXZhIDIgU0RLLCBTdGFuZGFyZCBFZGl0aW9uLCB2ZXJzaW9uIDEuMy4xXzA2IGZvciANCiAgICAgICAgTGludXggeDg2PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj4gU3VuIEphdmEgMiBTREssIFN0YW5kYXJkIEVkaXRpb24sIHZlcnNpb24gMS40LjFfMDEgZm9yIA0KICAgICAgICBMaW51eCB4ODY8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSI3MyUiPiA8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPiBJQk0gDQogICAgICAgIERldmVsb3BlciBLaXQgZm9yIExpbnV4LCBKYXZhIDIgVGVjaG5vbG9neSBFZGl0aW9uLCB2ZXJzaW9uIDEuMy4xIFNSLTIgDQogICAgICAgIChwZW5kaW5nIGZpeCB0byBWTSBkZWZlY3QgdW5jb3ZlcmVkIGluIFNSLTMpPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iMjElIiByb3dTcGFuPSIyIj5TdW4gU29sYXJpczwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE4JSIgcm93U3Bhbj0iMiI+U1BBUkM8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI3MyUiPiBTdW4gSmF2YSAyIFNESywgU3RhbmRhcmQgRWRpdGlvbiwgdmVyc2lvbiAxLjMuMV8wNiBmb3IgDQogICAgICAgIFNvbGFyaXMgU1BBUkM8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSI3MyUiPiBTdW4gSmF2YSAyIFNESywgU3RhbmRhcmQgRWRpdGlvbiwgdmVyc2lvbiAxLjQuMV8wMSBmb3IgDQogICAgICAgIFNvbGFyaXMgU1BBUkM8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiPkhQIEhQLVVYPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTglIj5ocDkwMDAgUEEtUklTQzwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjczJSI+PHNwYW4gY2xhc3M9ImhlYWRlciI+SFAtVVggU0RLIGZvciB0aGUgSmF2YSAyIHBsYXRmb3JtLA0KICAgICAgICB2ZXJzaW9uIDEuMy4xIGZvciBocDkwMDAgUEEtUklTQzwvc3Bhbj48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiPklCTa4gQUlYPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTglIj5Qb3dlclBDPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj4gSUJNIERldmVsb3BlciBLaXQgZm9yIEFJWCwgSmF2YSAyIFRlY2hub2xvZ3kgRWRpdGlvbiwgdmVyc2lvbiANCiAgICAgICAgMS4zLjE8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiIHJvd1NwYW49IjIiPkFwcGxlriBNYWOuIE9TPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTglIiByb3dTcGFuPSIyIj5Qb3dlclBDPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj5KYXZhIDIgU3RhbmRhcmQgRWRpdGlvbiAxLjMuMSBmb3IgTWFjIE9TIFggMTAuMjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjczJSI+SmF2YSAyIFN0YW5kYXJkIEVkaXRpb24gMS40LjEgZm9yIE1hYyBPUyBYIDEwLjIgKHByZS1yZWxlYXNlKTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjIxJSI+PHNwYW4gY2xhc3M9InRpdGxlIj5RTlg8L3NwYW4+rjxzcGFuIGNsYXNzPSJ0aXRsZSI+IE5ldXRyaW5vPC9zcGFuPq48c3BhbiBjbGFzcz0idGl0bGUiPiANCiAgICAgICAgUlRPUzwvc3Bhbj48L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOCUiPkludGVsIHg4NjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjczJSI+SUJNIEo5IFZNIGZvciBRTlgsIHZlcnNpb24gMi4wPC90ZD4NCiAgICA8L3RyPg0KICA8L3Rib2R5Pg0KPC90YWJsZT4NCjxwPjxzcGFuIGNsYXNzPSJoZWFkZXIiPlRoZSBmb2xsb3dpbmcgdGFibGUgZGVzY3JpYmVzIHRoZSBjb21iaW5hdGlvbnMgb2YNCm9wZXJhdGluZyBzeXN0ZW0gYW5kIEphdmEgMiBQbGF0Zm9ybSB1c2VkIHdoZW4gdGVzdGluZyB0aGUgRWNsaXBzZSBTREsNCmNvbmZpZ3VyYXRpb25zLiBUaGUgc3RhdHVzIGNvbHVtbiBpbmRpY2F0ZXMgdGhlIGxldmVsIG9mIHRlc3Rpbmc6DQomcXVvdDtQcmltYXJ5JnF1b3Q7IG1lYW5zIGEgZnVsbCB0ZXN0ZWQgY29uZmlndXJhdGlvbjsgJnF1b3Q7PC9zcGFuPlNlY29uZGFyeSZxdW90Ow0KbWVhbnMgYSBjb25maWd1cmF0aW9uIHdoaWNoIGlzIG9ubHkgbGlnaHRseSB0ZXN0ZWQ7ICZxdW90O1VudGVzdGVkJnF1b3Q7IG1lYW5zIGENCmNvbmZpZ3VyYXRpb24gdGhhdCBoYXMgcmVjZWl2ZWQgbm8gdGVzdGluZywgYnV0IHdoaWNoIHNob3VsZCB3b3JrLjwvcD4NCjx0YWJsZSB3aWR0aD0iOTElIiBib3JkZXI9IjEiIGhlaWdodD0iNDE1Ij4NCiAgPHRib2R5Pg0KICAgIDx0cj4gDQogICAgICA8dGQgd2lkdGg9IjExJSIgaGVpZ2h0PSIzMiI+PGI+V2luZG93IHN5c3RlbTwvYj48L3RkPg0KICAgICAgPHRkIHdpZHRoPSIyOCUiIGhlaWdodD0iMzIiPjxiPkphdmEgMiBQbGF0Zm9ybTxicj4NCiAgICAgICAgKHNlZSBhYm92ZSB0YWJsZSk8L2I+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjMyIj48Yj5PcGVyYXRpbmcgRW52aXJvbm1lbnQ8L2I+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTklIiBoZWlnaHQ9IjMyIj48Yj5UZXN0aW5nIFN0YXR1czwvYj48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIDx0ZCB3aWR0aD0iMTElIiByb3dTcGFuPSI1IiBoZWlnaHQ9IjEwNCI+V2luMzI8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIyOCUiIHJvd1NwYW49IjUiIGhlaWdodD0iMTA0Ij5XaW5kb3dzIG9uIEludGVsIHg4NjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIxNiI+V2luZG93cyBYUDwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+UHJpbWFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+IA0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPldpbmRvd3MgMjAwMDwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+UHJpbWFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+IA0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPldpbmRvd3MgTUU8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPlNlY29uZGFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+IA0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPldpbmRvd3MgOThTRTwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+U2Vjb25kYXJ5PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4gDQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIxNiI+V2luZG93cyBOVDwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+U2Vjb25kYXJ5PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4gDQogICAgICA8dGQgd2lkdGg9IjExJSIgcm93U3Bhbj0iNiIgaGVpZ2h0PSIxNTIiPk1vdGlmPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMjglIiByb3dTcGFuPSIzIiBoZWlnaHQ9Ijg2Ij4mbmJzcDsgPHA+TGludXggb24gSW50ZWwgeDg2PC9wPg0KICAgICAgICA8cD4mbmJzcDs8L3A+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjI1Ij5SZWRIYXQgTGludXggOC4wIHg4NjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIyNSI+UHJpbWFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+IA0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMjUiPlN1U0UgTGludXggOC4xIHg4NjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIyNSI+UHJpbWFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+IA0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMjQiPk90aGVyIExpbnV4OyBrZXJuZWwgdmVyc2lvbiAyLjQuNywgYW5kIFhGcmVlODYgDQogICAgICAgIHZlcnNpb24gNC4xLjA8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMjQiPlVudGVzdGVkPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4gDQogICAgICA8dGQgd2lkdGg9IjI4JSIgaGVpZ2h0PSIxNiI+U29sYXJpcyBvbiBTUEFSQyZuYnNwOzwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIxNiI+U3VuIFNvbGFyaXMgOCBTUEFSQzwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+UHJpbWFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+IA0KICAgICAgPHRkIHdpZHRoPSIyOCUiIGhlaWdodD0iMTYiPkhQLVVYIG9uIGhwOTAwMCBQQS1SSVNDPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5IUC1VWCAxMWkgaHA5MDAwPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTklIiBoZWlnaHQ9IjE2Ij5QcmltYXJ5PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4gDQogICAgICA8dGQgd2lkdGg9IjI4JSIgaGVpZ2h0PSIxNiI+QUlYIG9uIFBvd2VyUEM8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPklCTSBBSVggNS4xIG9uIFBvd2VyUEM8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIDx0ZCB3aWR0aD0iMTElIiByb3dTcGFuPSI0IiBoZWlnaHQ9IjgxIj5HVEs8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIyOCUiIHJvd1NwYW49IjQiIGhlaWdodD0iODEiPkxpbnV4IG9uIEludGVsIHg4NjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+IA0KICAgICAgPHRkIGhlaWdodD0iMTUiPlJlZEhhdCBMaW51eCA4LjAgeDg2ICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPiANCiAgICAgICAgR1RLIDIuMiByZXF1aXJlZCBmb3IgREJDUyk8L3RkPg0KICAgICAgPHRkIGhlaWdodD0iMTUiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5TdVNFIExpbnV4IDguMSB4ODYgKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+IA0KICAgICAgICBHVEsgMi4yIHJlcXVpcmVkIGZvciBEQkNTKTwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+UHJpbWFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+IA0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPk90aGVyIExpbnV4OyBHVEsgMi4wLjYgKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+IA0KICAgICAgICBHVEsgMi4yIHJlcXVpcmVkIGZvciBEQkNTKTwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+VW50ZXN0ZWQ8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIDx0ZCB3aWR0aD0iMTElIiBoZWlnaHQ9IjE2Ij5DYXJib248L3RkPg0KICAgICAgPHRkIHdpZHRoPSIyOCUiIGhlaWdodD0iMTYiPk1hYyBPUyBYIG9uIFBvd2VyUEM8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPk1hYyBPUyBYIDEwLjI8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPjxpPkVhcmx5IGFjY2VzczwvaT48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIDx0ZCB3aWR0aD0iMTElIiBoZWlnaHQ9IjE2Ij5QaG90b26uPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMjglIiBoZWlnaHQ9IjE2Ij5JQk0gSjkgVk0gZm9yIFFOWDwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIxNiI+UU5YIE5ldXRyaW5vIFJUT1MgNi4yLjEmbmJzcDs8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogIDwvdGJvZHk+DQo8L3RhYmxlPg0KPGg0PkludGVybmF0aW9uYWxpemF0aW9uPC9oND4NCjxwPlRoZSBFY2xpcHNlIFBsYXRmb3JtIGlzIGRlc2lnbmVkIGFzIHRoZSBiYXNpcyBmb3IgaW50ZXJuYXRpb25hbGl6ZWQgcHJvZHVjdHMuDQpUaGUgdXNlciBpbnRlcmZhY2UgZWxlbWVudHMgcHJvdmlkZWQgYnkgdGhlIEVjbGlwc2UgU0RLIGNvbXBvbmVudHMsIGluY2x1ZGluZw0KZGlhbG9ncyBhbmQgZXJyb3IgbWVzc2FnZXMsIGFyZSBleHRlcm5hbGl6ZWQuIFRoZSBFbmdsaXNoIHN0cmluZ3MgYXJlIHByb3ZpZGVkDQphcyB0aGUgZGVmYXVsdCByZXNvdXJjZSBidW5kbGVzLjwvcD4NCjxwPkxhdGluLTEgbG9jYWxlcyBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBFY2xpcHNlIFNESyBvbiBhbGwgb2YgdGhlIGFib3ZlIG9wZXJhdGluZyANCiAgZW52aXJvbm1lbnRzOyBEQkNTIGxvY2FsZXMgYXJlIHN1cHBvcnRlZCBieSB0aGUgRWNsaXBzZSBTREsgb24gdGhlIFdpbmRvd3MsIA0KICBHVEssIGFuZCBNb3RpZiB3aW5kb3cgc3lzdGVtczsgQklESSBsb2NhbGVzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIEVjbGlwc2UgU0RLIA0KICBvbmx5IG9uIFdpbmRvd3Mgb3BlcmF0aW5nIGVudmlyb25tZW50cy4NCjxwPlRoZSBFY2xpcHNlIFNESyBzdXBwb3J0cyBHQiAxODAzMCwgdGhlIG5ldyBDaGluZXNlIGNvZGUgcGFnZSBzdGFuZGFyZCwgb24gV2luZG93cyANCiAgWFAgYW5kIDIwMDAsIGFuZCA8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPiBMaW51eC4gDQogIE5vdGUsIGhvd2V2ZXIsIHRoYXQgR0IgMTgwMzAgYWxzbyByZXF1aXJlcyBsb2NhbGUgYW5kIGNoYXJhY3RlciBlbmNvZGluZyBzdXBwb3J0IA0KICBmcm9tIHRoZSBKYXZhIDIgUnVudGltZSBFbnZpcm9ubWVudDsgdGhpcyBzdXBwb3J0IGlzIHN0YW5kYXJkIGluIHZlcnNpb24gMS40LCANCiAgYW5kIGFsc28gYXZhaWxhYmxlIGluIHNvbWUgMS4zIEpSRXMuDQo8cD4gR2VybWFuIGFuZCBKYXBhbmVzZSBsb2NhbGVzIGhhdmUgYmVlbiB0ZXN0ZWQuIA0KPGg0PkJJREkgc3VwcG9ydDwvaDQ+DQo8cD5UaGUgRWNsaXBzZSBTREsgaXMgYSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCB0YXJnZXRlZCBhdCB0ZWNobmljYWwNCnByb2Zlc3Npb25hbHMgLSBub3QgYW4gZW5kIHVzZXIgYXBwbGljYXRpb24uIEhvd2V2ZXIsIHRoZSBFY2xpcHNlIFNESyB0b29scyB3aWxsDQpwZXJtaXQgdGVjaG5pY2FsIHByb2Zlc3Npb25hbHMgd2hvIGFyZSB3b3JraW5nIGluIEVuZ2xpc2ggdG8gYnVpbGQgSGVicmV3L0FyYWJpYw0KZW5kIHVzZXIgSmF2YSBwcm9ncmFtcyB3aGljaCBhcmUgdGhlbXNlbHZlcyBub3QgYmFzZWQgb24gdGhlIEVjbGlwc2UgU0RLLiBUaGUNCkJJREkgc3VwcG9ydCBpbiB0aGUgRWNsaXBzZSBTREsgYWxsb3dzIGEgSmF2YSBwcm9ncmFtbWVyIHRvIHdvcmsgd2l0aCBCSURJDQpzdHJpbmdzLCBjb2RlIGNvbW1lbnRzLCBldGMuIGJ1dCB0aGUgRWNsaXBzZSBTREsgaXRzZWxmIGlzIG5vdCBkZXNpZ25lZCB0byBiZQ0KbG9jYWxpemVkIGZvciBCSURJIGxvY2FsZXMgYW5kIGl0cyB3aWRnZXQgb3JpZW50YXRpb24gY2FuIG5vdCBiZSBjaGFuZ2VkLjwvcD4NCjxwPjxpPklNUE9SVEFOVDogVGhlIGFib3ZlIEJJREkgc3VwcG9ydCBpcyBhdmFpbGFibGUgb25seSBvbiBXaW5kb3dzIHBsYXRmb3Jtcy48L2k+PC9wPg0KDQo8aDI+DQoNCkNvbXBhdGliaWxpdHkgd2l0aCBQcmV2aW91cyBSZWxlYXNlczwvaDI+DQoNCjxwPg0KDQpJdCBpcyBhIGdpdmVuIHRoYXQgRWNsaXBzZSAyLjEgd2lsbCBiZSB1cHdhcmRzIGNvbXBhdGlibGUgd2l0aCBFY2xpcHNlIDIuMC4gQW4gaW5jb21wYXRpYmxlIGJyZWFrIHdpdGggdGhlIHBhc3QgdGhpcyBlYXJseSBvbiB3b3VsZCBiZSBib3RoIHVud2VsY29tZSBhbmQNCnVud2FycmFudGVkLjwvcD4NCg0KPGgzPg0KDQpDb21wYXRpYmlsaXR5IG9mIFJlbGVhc2UgMi4xIHdpdGggMi4wPC9oMz4NCg0KIEVjbGlwc2UgU0RLIDIuMSB3aWxsIGJlIHVwd2FyZHMgY29tcGF0aWJsZSB3aXRoIEVjbGlwc2UgU0RLIDIuMCB0byB0aGUgDQpncmVhdGVzdCBleHRlbnQgcG9zc2libGUuIFdlIGFudGljaXBhdGUgYSBzbWFsbCBudW1iZXIgb2YgYXJlYXMgd2hlcmUgc2xhdmlzaGx5IA0KbWFpbnRhaW5pbmcgY29tcGF0aWJpbGl0eSB3b3VsZCBub3QgYmUgaW4gdGhlIGJlc3QgaW50ZXJlc3RzIG9mIHRoZSBQbGF0Zm9ybSBvciANCml0cyBjbGllbnRzLiBBbGwgc3VjaCBleGNlcHRpb25zIHdpbGwgYmUgbm90ZWQgaW4gdGhlIDIuMSByZWxlYXNlIG5vdGVzIHNvIHRoYXQgDQpjbGllbnRzIGNhbiBhc3Nlc3MgdGhlIGltcGFjdCBvZiB0aGVzZSBjaGFuZ2VzIG9uIHRoZWlyIHBsdWctaW5zIGFuZCBwcm9kdWN0cy4NCg0KPHA+PGI+QVBJIENvbnRyYWN0IENvbXBhdGliaWxpdHk6PC9iPiBFY2xpcHNlIFNESyAyLjEgd2lsbCBiZSB1cHdhcmRzIGNvbnRyYWN0LWNvbXBhdGlibGUgDQogIHdpdGggRWNsaXBzZSBTREsgMi4wIHVubGVzcyBub3RlZC4gVGhpcyBtZWFucyB0aGF0IHByb2dyYW1zIGluIGZ1bGwgY29tcGxpYW5jZSANCiAgd2l0aCBjb250cmFjdHMgc3BlY2lmaWVkIGluIEVjbGlwc2UgU0RLIDIuMCBBUElzIHdpbGwgYXV0b21hdGljYWxseSBiZSBpbiBmdWxsIA0KICBjb21wbGlhbmNlIHdpdGggRWNsaXBzZSBTREsgMi4xIEFQSXMuIChBUEkgaXMgY29uc3RydWVkIGJyb2FkbHkgdG8gaW5jbHVkZSBzdWNoIA0KICB0aGluZ3MgYXMgcGx1Zy1pbiBleHRlbnNpb24gcG9pbnRzLikgRG93bndhcmQgY29udHJhY3QgY29tcGF0aWJpbGl0eSBpcyBub3QgDQogIHN1cHBvcnRlZC4gVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgY29tcGxpYW5jZSB3aXRoIEVjbGlwc2UgU0RLIDIuMSBBUElzIHdvdWxkIA0KICBlbnN1cmUgY29tcGxpYW5jZSB3aXRoIEVjbGlwc2UgU0RLIDIuMCBBUElzLiBSZWZlciB0byA8aT48YSBocmVmPSJodHRwOi8vZWNsaXBzZS5vcmcvZWNsaXBzZS9kZXZlbG9wbWVudC9qYXZhLWFwaS1ldm9sdXRpb24uaHRtbCI+RXZvbHZpbmcgDQogIEphdmEtYmFzZWQgQVBJczwvYT48L2k+IGZvciBhIGRpc2N1c3Npb24gb2YgdGhlIGtpbmRzIG9mIEFQSSBjaGFuZ2VzIHRoYXQgbWFpbnRhaW4gDQogIGNvbnRyYWN0IGNvbXBhdGliaWxpdHkuIA0KPHA+PGI+QmluYXJ5IChwbHVnLWluKSBDb21wYXRpYmlsaXR5OjwvYj4gRWNsaXBzZSBTREsgMi4xIHdpbGwgYmUgdXB3YXJkcyBiaW5hcnktY29tcGF0aWJsZSANCiAgd2l0aCBFY2xpcHNlIFNESyAyLjAgdW5sZXNzIG5vdGVkLiBUaGlzIG1lYW5zIHRoYXQgcGx1Zy1pbnMgYnVpbHQgZm9yIEVjbGlwc2UgDQogIFNESyAyLjAgd2lsbCBjb250aW51ZSB0byB3b3JrIGNvcnJlY3RseSBpbiBFY2xpcHNlIFNESyAyLjEgd2l0aG91dCBjaGFuZ2UuIERvd253YXJkIA0KICBwbHVnLWluIGNvbXBhdGliaWxpdHkgaXMgbm90IHN1cHBvcnRlZC4gUGx1Zy1pbnMgZm9yIEVjbGlwc2UgU0RLIDIuMSBhcmUgdW5saWtlbHkgDQogIHRvIGJlIHVzYWJsZSBpbiBFY2xpcHNlIFNESyAyLjAuIFBsdWctaW5zIHdpdGggaGFyZC1jb2RlZCByZWZlcmVuY2VzIGluIHRoZWlyIA0KICBwbHVnLWluIG1hbmlmZXN0IGZpbGUgdG8gMi4wIHZlcnNpb25zIG9mIHByZXJlcXVpc2l0ZSBFY2xpcHNlIFByb2plY3QgcGx1Zy1pbnMgDQogIHdpbGwgd29yayBpbiAyLjEgcHJvdmlkZWQgdGhlIHZlcnNpb24gbWF0Y2ggcnVsZSBpcyAmcXVvdDtncmVhdGVyT3JFcXVhbCZxdW90OyANCiAgb3IgJnF1b3Q7Y29tcGF0aWJsZSZxdW90OyAodGhlIGRlZmF1bHQpOyByZWZlcmVuY2VzIHVzaW5nICZxdW90O3BlcmZlY3QmcXVvdDsgDQogIG9yICZxdW90O2VxdWl2YWxlbnQmcXVvdDsgbWF0Y2ggcnVsZXMgd2lsbCBiZSBicm9rZW4uIFJlZmVyIHRvIDxpPjxhIGhyZWY9Imh0dHA6Ly9lY2xpcHNlLm9yZy9lY2xpcHNlL2RldmVsb3BtZW50L2phdmEtYXBpLWV2b2x1dGlvbi5odG1sIj5Fdm9sdmluZyANCiAgSmF2YS1iYXNlZCBBUElzPC9hPjwvaT4gZm9yIGEgZGlzY3Vzc2lvbiBvZiB0aGUga2luZHMgb2YgQVBJIGNoYW5nZXMgdGhhdCBtYWludGFpbiANCiAgYmluYXJ5IGNvbXBhdGliaWxpdHkuIA0KPHA+PGI+U291cmNlIENvbXBhdGliaWxpdHk6PC9iPiBFY2xpcHNlIFNESyAyLjEgd2lsbCBiZSB1cHdhcmRzIHNvdXJjZS1jb21wYXRpYmxlIA0KICB3aXRoIEVjbGlwc2UgU0RLIDIuMCB1bmxlc3Mgbm90ZWQuIFRoaXMgbWVhbnMgdGhhdCBzb3VyY2UgZmlsZXMgd3JpdHRlbiANCiAgdG8gdXNlIEVjbGlwc2UgU0RLIDIuMCBBUElzIGNhbiBiZSBzdWNjZXNzZnVsbHkgY29tcGlsZWQgYW5kIHJ1biBhZ2FpbnN0IEVjbGlwc2UgU0RLIDIuMSBBUElzLiBTaW5jZSBzb3VyY2UgaW5jb21wYXRpYmlsaXRpZXMgYXJlIGVhc3kgdG8gZGVhbCB3aXRoLCANCiAgbWFpbnRhaW5pbmcgc291cmNlIGNvbXBhdGliaWxpdHkgaXMgY29uc2lkZXJlZCBtdWNoIGxlc3MgaW1wb3J0YW50IHRoYW4gbWFpbnRhaW5pbmcgDQogIGNvbnRyYWN0IGFuZCBiaW5hcnkgY29tcGF0aWJpbGl0eS4gRG93bndhcmQgc291cmNlIGNvbXBhdGliaWxpdHkgaXMgbm90IHN1cHBvcnRlZC4gDQogIElmIHNvdXJjZSBmaWxlcyB1c2UgbmV3IEVjbGlwc2UgU0RLIEFQSXMsIHRoZXkgd2lsbCBub3QgYmUgdXNhYmxlIHdpdGggYW4gZWFybGllciANCiAgdmVyc2lvbiBvZiBFY2xpcHNlIFNESy4gDQo8cD48Yj5Xb3Jrc3BhY2UgQ29tcGF0aWJpbGl0eTo8L2I+IEVjbGlwc2UgU0RLIDIuMSB3aWxsIGJlIHVwd2FyZHMgd29ya3NwYWNlLWNvbXBhdGlibGUgDQogIHdpdGggRWNsaXBzZSBTREsgMi4wIHVubGVzcyBub3RlZC4gVGhpcyBtZWFucyB0aGF0IHdvcmtzcGFjZXMgYW5kIHByb2plY3RzIGNyZWF0ZWQgDQogIHdpdGggRWNsaXBzZSBTREsgMi4wIGNhbiBiZSBzdWNjZXNzZnVsbHkgb3BlbmVkIGJ5IEVjbGlwc2UgU0RLIDIuMSBhbmQgdXBncmFkZWQgDQogIHRvIGEgMi4xIHdvcmtzcGFjZS4gVGhpcyBpbmNsdWRlcyBib3RoIGhpZGRlbiBtZXRhZGF0YSwgd2hpY2ggaXMgbG9jYWxpemVkIHRvIA0KICBhIHBhcnRpY3VsYXIgd29ya3NwYWNlLCBhcyB3ZWxsIGFzIG1ldGFkYXRhIGZpbGVzIGZvdW5kIHdpdGhpbiBhIHdvcmtzcGFjZSBwcm9qZWN0IA0KICAoZS5nLiwgdGhlIC5wcm9qZWN0IGZpbGUpLCB3aGljaCBtYXkgcHJvcGFnYXRlIGJldHdlZW4gd29ya3NwYWNlcyB2aWEgZmlsZSBjb3B5aW5nIA0KICBvciB0ZWFtIHJlcG9zaXRvcmllcy4gSW5kaXZpZHVhbCBwbHVnLWlucyBkZXZlbG9wZWQgZm9yIEVjbGlwc2UgU0RLIDIuMSBzaG91bGQgDQogIHByb3ZpZGUgc2ltaWxhciB1cHdhcmRzIGNvbXBhdGliaWxpdHkgZm9yIHRoZWlyIGhpZGRlbiBhbmQgdmlzaWJsZSB3b3Jrc3BhY2UgDQogIG1ldGFkYXRhIGNyZWF0ZWQgYnkgZWFybGllciB2ZXJzaW9uczsgMi4xIHBsdWctaW4gZGV2ZWxvcGVycyBhcmUgcmVzcG9uc2libGUgDQogIGZvciBlbnN1cmluZyB0aGF0IHRoZWlyIHBsdWctaW5zIHJlY29nbml6ZSBib3RoIDIuMSBhbmQgMi4wIG1ldGFkYXRhIGFuZCBwcm9jZXNzIA0KICBpdCBhcHByb3ByaWF0ZWx5LiBVc2VyIGludGVyZmFjZSBzZXNzaW9uIHN0YXRlIG1heSBiZSBkaXNjYXJkZWQgd2hlbiBhIHdvcmtzcGFjZSANCiAgaXMgdXBncmFkZWQuIERvd253YXJkIHdvcmtzcGFjZSBjb21wYXRpYmlsaXR5IGlzIG5vdCBzdXBwb3J0ZWQuIEEgd29ya3NwYWNlIA0KICBjcmVhdGVkIChvciBvcGVuZWQpIGJ5IEVjbGlwc2UgU0RLIDIuMSB3aWxsIGJlIHVudXNhYmxlIHdpdGggYW4gZWFybGllciB2ZXJzaW9uIA0KICBvZiBFY2xpcHNlIFNESy4mbmJzcDtWaXNpYmxlIG1ldGFkYXRhIGZpbGVzIGNyZWF0ZWQgKG9yIG92ZXJ3cml0dGVuKSBieSBFY2xpcHNlIA0KICBTREsgMi4xIHdpbGwgZ2VuZXJhbGx5IGJlIHVudXNhYmxlIHdpdGggZWFybGllciB2ZXJzaW9ucyBvZiBFY2xpcHNlIFNESy4mbmJzcDsgDQo8cD48Yj5Ob24tY29tcGxpYW50IHVzYWdlIG9mIEFQSSdzPC9iPjogQWxsIG5vbi1BUEkgbWV0aG9kcyBhbmQgY2xhc3NlcywgYW5kIGNlcnRhaW5seSANCiAgZXZlcnl0aGluZyBpbiBhIHBhY2thZ2Ugd2l0aCAmcXVvdDtpbnRlcm5hbCZxdW90OyBpbiBpdHMgbmFtZSwgYXJlIGNvbnNpZGVyZWQgDQogIGltcGxlbWVudGF0aW9uIGRldGFpbHMgd2hpY2ggbWF5IHZhcnkgYmV0d2VlbiBvcGVyYXRpbmcgZW52aXJvbm1lbnQgYW5kIGFyZSANCiAgc3ViamVjdCB0byBjaGFuZ2Ugd2l0aG91dCBub3RpY2UuIENsaWVudCBwbHVnLWlucyB0aGF0IGRpcmVjdGx5IGRlcGVuZCBvbiBhbnl0aGluZyANCiAgb3RoZXIgdGhhbiB3aGF0IGlzIHNwZWNpZmllZCBpbiB0aGUgRWNsaXBzZSBTREsgQVBJIGFyZSBpbmhlcmVudGx5IHVuc3VwcG9ydGFibGUgDQogIGFuZCByZWNlaXZlIG5vIGd1YXJhbnRlZXMgYWJvdXQgY29tcGF0aWJpbGl0eSB3aXRoaW4gYSBzaW5nbGUgcmVsZWFzZSBtdWNoIGxlc3MgDQogIHdpdGggYW4gZWFybGllciByZWxlYXNlLiBSZWZlciB0byA8aT48YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FydGljbGVzL0FydGljbGUtQVBJJTIwdXNlL2VjbGlwc2UtYXBpLXVzYWdlLXJ1bGVzLmh0bWwiPkhvdyANCiAgdG8gVXNlIHRoZSBFY2xpcHNlIEFQSTwvYT48L2k+IGZvciBpbmZvcm1hdGlvbiBhYm91dCBob3cgdG8gd3JpdGUgY29tcGxpYW50IA0KICBwbHVnLWlucy4gDQoNCjxoMj4gRWNsaXBzZSBQcm9qZWN0IFN1YnByb2plY3RzPC9oMj4NCg0KVGhlIEVjbGlwc2UgUHJvamVjdCBjb25zaXN0cyBvZiAzIHN1YnByb2plY3RzLiBFYWNoIHN1YnByb2plY3QNCg0KaXMgY292ZXJlZCBpbiBpdHMgb3duIHNlY3Rpb246DQoNCjxibG9ja3F1b3RlPjxhIGhyZWY9IiNFY2xpcHNlIFBsYXRmb3JtIHN1YnByb2plY3QiPkVjbGlwc2UgUGxhdGZvcm08L2E+DQoNCjxicj4NCiAgPGEgaHJlZj0iI0phdmEgZGV2ZWxvcG1lbnQgdG9vbGluZyAoSkRUKSBzdWJwcm9qZWN0Ij5KRFQgLSBKYXZhIGRldmVsb3BtZW50IA0KICB0b29sczwvYT4gPGJyPg0KICA8YSBocmVmPSIjUGx1Zy1pbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCAoUERFKSBzdWJwcm9qZWN0Ij5QREUgLSBQbHVnLWluIGRldmVsb3BtZW50IGVudmlyb25tZW50PC9hPjwvYmxvY2txdW90ZT4NCg0KPHA+Rm9yIGVhY2ggc3VicHJvamVjdCwgdGhlIGl0ZW1zIGxpc3RlZCByZWZsZWN0IG5ldyBmZWF0dXJlcyBvZiB0aGUgRWNsaXBzZSBQbGF0Zm9ybSwgDQogIG9yIGFyZWFzIHdoZXJlIGV4aXN0aW5nIGZlYXR1cmVzIHdpbGwgYmUgc2lnbmlmaWNhbnRseSByZXdvcmtlZC4gRWFjaCBpdGVtIGluZGljYXRlcyANCiAgdGhlIGNvbXBvbmVudHMgYWZmZWN0ZWQgYnkgdGhhdCB3b3JrIGl0ZW0gKG1hbnkgaXRlbXMgaW52b2x2ZSBjb29yZGluYXRlZCBjaGFuZ2VzIA0KICB0byBzZXZlcmFsIGNvbXBvbmVudHMpLg0KDQo8aDM+DQoNCjxhIG5hbWU9IkVjbGlwc2UgUGxhdGZvcm0gc3VicHJvamVjdCI+RWNsaXBzZSBQbGF0Zm9ybSBzdWJwcm9qZWN0PC9hPjwvaDM+DQoNClRoZSBFY2xpcHNlIFBsYXRmb3JtIHByb3ZpZGVzIHRoZSBtb3N0IGZ1bmRhbWVudGFsIGJ1aWxkaW5nIGJsb2Nrcy4gVGhlIGZvbGxvd2luZyBpdGVtcyByZWZsZWN0IG5ldyBmZWF0dXJlcyBvZiB0aGUgRWNsaXBzZSBQbGF0Zm9ybSwgb3IgYXJlYXMNCg0Kd2hlcmUgZXhpc3RpbmcgZmVhdHVyZXMgd2lsbCBiZSBzaWduaWZpY2FudGx5IHJld29ya2VkLg0KPGg0PkNvbW1pdHRlZCBJdGVtcyAoRWNsaXBzZSBQbGF0Zm9ybSBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCjxwPiA8Yj5JbXByb3ZlIHN0YXJ0dXAgdGltZTwvYj4uJm5ic3A7IFByb2dyZXNzIHdhcyBtYWRlDQphdCBpbXByb3Zpbmcgc3RhcnR1cCB0aW1lcyBpbiAyLjA7IGhvd2V2ZXIsIGFkZGl0aW9uYWwgaW1wcm92ZW1lbnRzIGFyZSBuZWVkZWQuIEluIGFkZGl0aW9uLCB3ZSBuZWVkIHRvIGludmVzdGlnYXRlIGRlZmVycmluZyAob3IgcGFydGlhbGx5IG9taXR0aW5nKSB0aGUNCnJlY292ZXJ5IG9mIHRoZSBVSSBzdGF0ZS4gW1BsYXRmb3JtIENvcmUsIFBsYXRmb3JtIFVJXTwvcD4NCjxwPg0KPGI+QWxsb3cgdXNlciBjdXN0b21pemFibGUNCmtleSBiaW5kaW5ncy48L2I+Jm5ic3A7IEVjbGlwc2UgMi4wIHN1cHBvcnRzIGNvbmZpZ3VyYWJsZSBrZXkgYmluZGluZ3MsIGJ1dCBvbmx5DQpmb3IgZWRpdG9yIGtleSBiaW5kaW5ncywgYW5kIG9ubHkgY29uZmlndXJlZCBieSBhIHBsdWctaW4uIFRoZSB1c2VyIHNob3VsZCBiZQ0KYWJsZSB0byBpbnRlcmFjdGl2ZWx5IGN1c3RvbWl6ZSB0aGUNCmtleSBiaW5kaW5ncyBmb3IgYWxsIHdvcmtiZW5jaCBhY3Rpb25zLiBUaGVyZSBhcmUgYWRkaXRpb25hbCBjdXN0b21pemF0aW9uIHBvc3NpYmlsaXRpZXMgaW5jbHVkaW5nIHZpc2libGUgYWN0aW9ucyBhbmQgcGVyc3BlY3RpdmUgbGF5b3V0Lg0KW1BsYXRmb3JtIFVJLCBTV1QsIFRleHQsIEpEVCBVSV08L3A+DQo8cD4gPGI+SW1wcm92ZSB1cGRhdGUNCm1hbmFnZXIuPC9iPiBNYWtlIGNvbnRpbnVpbmcgaW1wcm92ZW1lbnRzIHRvIHRoZSBFY2xpcHNlIGluc3RhbGwgYW5kIHVwZGF0ZQ0KbWVjaGFuaXNtcy4gSW1wcm92ZSBzdXBwb3J0IGZvciBpbnN0YWxsaW5nIGFuZCB1cGRhdGluZyBsYXJnZSBwcm9kdWN0cyBtYWtpbmcNCnVzZSBvZiBuZXN0ZWQgZmVhdHVyZXMuIE1ha2UgcmVtb3RlIGNvbm5lY3Rpb25zIG1vcmUgY29uZmlndXJhYmxlICggY29ubmVjdGlvbiB1c2luZyBhIHByb3h5IHNlcnZlcg0KYmVoaW5kIGZpcmV3YWxsIGFuZCBhdXRoZW50aWNhdGlvbikgYW5kIG1vcmUgcm9idXN0ICh0aW1lIG91dHMpLiBbUGxhdGZvcm0gQ29yZSwgUGxhdGZvcm0gSW5zdGFsbC9VcGRhdGVdPC9wPg0KPHA+IDxiPkVuYWJsZSBEQkNTIG9uIExpbnV4LjwvYj4NClN1cHBvcnQgZG91YmxlLWJ5dGUgY2hhcmFjdGVycyBvbiB0aGUgR1RLIGFuZCBNb3RpZiB3aW5kb3cgc3lzdGVtcy4gW1NXVF08L3A+DQo8cD4gPGI+QWRkIHdvcmtiZW5jaA0KZWRpdG9yIG5hdmlnYXRpb24NCmhpc3RvcnkuPC9iPiBUaGUgdXNlciBzaG91bGQgYmUgYWJsZSB0byBuYXZpZ2F0ZSBiZXR3ZWVuIHdvcmtiZW5jaCBlZGl0b3JzIHdpdGggd2ViIHN0eWxlIGJhY2svZm9yd2FyZCBhY3Rpb25zLg0KKFJlZjogPGEgaHJlZj0iaHR0cDovL2Rldi5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD01NzAwIj5idWcgNTcwMDwvYT4pJm5ic3A7DQpbUGxhdGZvcm0gVUldPC9wPg0KICA8cD4gPGI+SW1wcm92ZSBBbnQgc3VwcG9ydC48L2I+IEFkZCBzdXBwb3J0IHRvIG5hdmlnYXRlIGZyb20gQW50IGVycm9yIG91dHB1dCANCiAgICB0byB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UuIFtQbGF0Zm9ybSBVSSwgQW50IENvcmVdPC9wPg0KPC9ibG9ja3F1b3RlPg0KPGg0PlByb3Bvc2VkIEl0ZW1zIChFY2xpcHNlIFBsYXRmb3JtIHN1YnByb2plY3QpPC9oND4NCjxibG9ja3F1b3RlPg0KPHA+PGk+Tm9uZSBhdCB0aGlzIHRpbWUuPC9pPjwvcD4NCjwvYmxvY2txdW90ZT4NCjxoND5EZWZlcnJlZCBJdGVtcyAoRWNsaXBzZSBQbGF0Zm9ybSBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCiAgPHA+PGI+QWRkIGNoZWF0IHNoZWV0czwvYj4uJm5ic3A7IEEgY2hlYXQgc2hlZXQgaXMgYW4gaW5zdGFuY2Ugb2YgYSBzaW1wbGUga2luZCANCiAgICBvZiB3b3JrZmxvdyBzdXBwb3J0IHVzZWQgdG8gaGVscCB0aGUgdXNlciBjYXJyeSBvdXQgYSBzZXF1ZW5jZSBvZiBzdGVwcy4gRm9yIA0KICAgIGV4YW1wbGUsICZxdW90O2NyZWF0ZSBhbmQgZGVwbG95IGEgcGx1Zy1pbiIgaXMgYSBtdWx0aS1zdGVwIHByb2Nlc3MgdGhhdCBjb3VsZCANCiAgICBiZSBtYWRlIGVhc2llciB0byBmb2xsb3cgaWYgdGhlcmUgd2FzIGEgZ3VpZGUsIHNpbWlsYXIgdG8gYSByZWNpcGUgdGhhdCB3b3VsZCANCiAgICB0cmFjayB0aGUgdXNlcidzIHByb2dyZXNzIGFuZCBwcm92aWRlIGJvdGggZGVzY3JpcHRpdmUgdGV4dCB0aGF0IGV4cGxhaW5zIA0KICAgIHRoZSBzdGVwcyBpbnZvbHZlZCBhbmQgaW50ZWdyYXRpb24gd2l0aCBFY2xpcHNlIHRvIGF1dG9tYXRlIHRoZSBwcm9jZXNzLiBUaGUgDQogICAgV2VsY29tZSBQYWdlIGVkaXRvciBpcyBhIHNpbXBsZSBleGFtcGxlIG9mIGEgY2hlYXQgc2hlZXQuIFByb3ZpZGUgYSBzdGFuZGFyZCANCiAgICBBUEkgZm9yIGNyZWF0aW5nIGNoZWF0IHNoZWV0cy4gW1BsYXRmb3JtIFVJXTwvcD4NCiAgPHA+IDxiPkFkZCB0YWJsZSBvZiBjb250ZW50cyBzdXBwb3J0IHRvIHdpemFyZHMuPC9iPiBFeHRlbmQgdGhlIHdvcmtiZW5jaCB3aXphcmQgDQogICAgZnJhbWV3b3JrIHRvIGFsbG93IEVjbGlwc2Ugd2l6YXJkIGRldmVsb3BlcnMgdG8gcHJvdmlkZSBtdWNoIG1vcmUgc3Vic3RhbnRpYWwgDQogICAgYW5kIHNpZ25pZmljYW50IHVzZXIgZmVlZGJhY2suIFtQbGF0Zm9ybSBVSV08L3A+DQogIDxwPiA8Yj5TdXBwb3J0IGZsb2F0aW5nIHRvb2xiYXJzIGFuZCB2aWV3cy48L2I+IEFsbG93IHRoZSB1c2VyIHRvIGN1c3RvbWl6ZSB0aGUgDQogICAgd29ya2JlbmNoIGJ5IGNyZWF0aW5nIGZsb2F0aW5nIHRvb2xiYXJzIGFuZCB2aWV3cy4gW1BsYXRmb3JtIFVJXTwvcD4NCiAgPHA+IDxiPkFsbG93IGVkaXRvcnMgdG8gb3BlbiBmaWxlcyBvdXRzaWRlIHdvcmtzcGFjZS48L2I+IEEgY29tbW9uIHJlcXVlc3QgaXMgDQogICAgdG8gYmUgYWJsZSB0byBvcGVuIGEgZmlsZSB0aGF0IGlzIG5vdCBwYXJ0IG9mIHRoZSB3b3Jrc3BhY2UgdXNpbmcgRWNsaXBzZS4gDQogICAgSW4gYWRkaXRpb24sIGFwcGxpY2F0aW9ucyB3b3VsZCBsaWtlIHRvIHByb3ZpZGUgZmlsZSBleHRlbnNpb24gYXNzb2NpYXRpb25zIA0KICAgIHNvIHRoYXQgZG91YmxlLWNsaWNraW5nIG9uIGEgZmlsZSBpbiB0aGUgT1MgZGVza3RvcCB3b3VsZCBvcGVuIHRoZSBhc3NvY2lhdGVkIA0KICAgIEVjbGlwc2UgZWRpdG9yLiBUaGUgb3BlcmF0aW9ucyBhbmQgY2FwYWJpbGl0aWVzIGF2YWlsYWJsZSBvbiB0aGVzZSAib3V0c2lkZSANCiAgICBvZiB0aGUgd29ya3NwYWNlIiBmaWxlcyB3b3VsZCBuZWVkIHRvIGJlIGRlZmluZWQuIFtQbGF0Zm9ybSBVSV08L3A+DQogIDxwPjxiPkltcHJvdmUgc2VydmljZWFiaWxpdHkuIDwvYj4gUHJvZ3Jlc3Mgd2FzIG1hZGUgYXQgaW1wcm92aW5nIHNlcnZpY2VhYmlsaXR5IA0KICAgIGluIDIuMDsgaG93ZXZlciwgYWRkaXRpb25hbCBpbXByb3ZlbWVudHMgYXJlIG5lZWRlZCwgcGFydGljdWxhcmx5IGluIGRlYWxpbmcgDQogICAgd2l0aCBlcnJvciBjb25kaXRpb25zIGFuZCByZXBvcnRpbmcgdGhlbSBpbiBhbiBhcHByb3ByaWF0ZSBtYW5uZXIuIFtQbGF0Zm9ybSANCiAgICBDb3JlLCBTV1QsIFBsYXRmb3JtIFVJXTxicj4NCiAgICA8YnI+DQogICAgPGI+SW1wcm92ZSBmaWxlIGVuY29kaW5nIHN1cHBvcnQuPC9iPiBFY2xpcHNlIDIuMCB1c2VzIGEgc2luZ2xlIGdsb2JhbCBmaWxlIA0KICAgIGVuY29kaW5nIHNldHRpbmcgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgZmlsZXMgaW4gdGhlIHdvcmtzcGFjZS4gVGhpcyBpcyBwcm9ibGVtYXRpYzsgDQogICAgZm9yIGV4YW1wbGUsIHdoZW4gSmF2YSBzb3VyY2UgZmlsZXMgaW4gdGhlIHdvcmtzcGFjZSB1c2UgT1MgZGVmYXVsdCBmaWxlIGVuY29kaW5nIA0KICAgIHdoaWxlIFhNTCBmaWxlcyBpbiB0aGUgd29ya3NwYWNlIHVzZSBVVEYtOCBmaWxlIGVuY29kaW5nLiBUaGUgUGxhdGZvcm0gc2hvdWxkIA0KICAgIHN1cHBvcnQgbm9uLXVuaWZvcm0gZmlsZSBlbmNvZGluZ3MuIChSZWY6IDxhIGhyZWY9Imh0dHA6Ly9kZXYuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NTM5OSI+YnVnIA0KICAgIDUzOTk8L2E+KSBbUGxhdGZvcm0gQ29yZSwgUGxhdGZvcm0gVUksIFRleHQsIFNlYXJjaCwgQ29tcGFyZSwgSkRUIFVJLCBKRFQgDQogICAgQ29yZV08L3A+DQogIDxwPig8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPiByZWNlbnRseSBkZWZlcnJlZCkgDQogICAgPGI+SW1wcm92ZSBTV1Qgc3VwcG9ydCBmb3IgcmlnaHQtdG8tbGVmdCBsYW5ndWFnZXM8L2I+LiZuYnNwO0FsbG93IHRoZSBhcHByb3ByaWF0ZSANCiAgICB3aWRnZXQgb3JpZW50YXRpb24gZm9yIHJpZ2h0LXRvLWxlZnQgbGFuZ3VhZ2VzLiBbU1dUXTwvcD4NCgkgIA0KICA8L2Jsb2NrcXVvdGU+DQo8aDQ+UmVqZWN0ZWQgSXRlbXMgKEVjbGlwc2UgUGxhdGZvcm0gc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+DQogIDxwPjxpPk5vbmUgYXQgdGhpcyB0aW1lLjwvaT48L3A+DQo8L2Jsb2NrcXVvdGU+DQoNCg0KDQo8cD4oRW5kIG9mIGl0ZW1zIGZvciBFY2xpcHNlIFBsYXRmb3JtIHN1YnByb2plY3QuKQ0KDQoNCg0KPGgzPiA8YSBuYW1lPSJKYXZhIGRldmVsb3BtZW50IHRvb2xpbmcgKEpEVCkgc3VicHJvamVjdCI+SmF2YSBkZXZlbG9wbWVudCB0b29scyANCiAgKEpEVCkgc3VicHJvamVjdDwvYT48L2gzPg0KDQo8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2pkdC9pbmRleC5odG1sIj4gSmF2YSBkZXZlbG9wbWVudCB0b29sczwvYT4gKEpEVCkgDQppbXBsZW1lbnRzIGEgSmF2YSBJREUgYmFzZWQgb24gdGhlIEVjbGlwc2UgUGxhdGZvcm0uIFRoZSBmb2xsb3dpbmcgd29yayBpdGVtcyANCnJlZmxlY3QgbmV3IGZlYXR1cmVzIG9mIEpEVCwgb3IgYXJlYXMgd2hlcmUgZXhpc3RpbmcgZmVhdHVyZXMgd2lsbCBiZSBzaWduaWZpY2FudGx5IA0KcmV3b3JrZWQuIA0KPGg0PkNvbW1pdHRlZCBJdGVtcyAoRWNsaXBzZSBKRFQgc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+DQo8cD4gPGI+U3VwcG9ydCBidWlsZGluZyBwcm9qZWN0cyB3aXRoIGNpcmN1bGFyIGRlcGVuZGVuY2llcy48L2I+Jm5ic3A7IFNvbWUgdXNlcnMgYXJlDQpleHBlcmllbmNpbmcgZGlmZmljdWx0eSBwYXJ0aXRpb25pbmcgdGhlaXIgd29yayBpbnRvIGluZGVwZW5kZW50bHktYnVpbGRhYmxlIHByb2plY3RzLiBXZSB3YW50IHRvIGFkZCBhIG1lY2hhbmlzbSB0byBhbGxvdyBtdXR1YWxseSBkZXBlbmRlbnQgcHJvamVjdHMgdG8gYmUNCmJ1aWx0DQpzdWNjZXNzZnVsbHksIHdoaWxlIHByZXNlcnZpbmcgY3VycmVudCBwcm9qZWN0IGJ1aWxkIG9yZGVyIGJlaGF2aW9yLiAoUmVmOiA8YSBocmVmPSJodHRwOi8vZGV2LmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTEwMjYyIj5idWcNCjEwMjYyPC9hPikgW0pEVCBDb3JlLCBQbGF0Zm9ybSBDb3JlXTwvcD4NCiAgPHA+IDxiPk1vcmUgZmxleGlibGUgcHJvamVjdCBsYXlvdXQuJm5ic3A7IDwvYj5TdXBwb3J0IHNvdXJjZSBhbmQgb3V0cHV0IGZvbGRlcnMgdGhhdCBhcmUgb3V0c2lkZSBvZiB0aGUNCiAgd29ya3NwYWNlLiBUaGlzIGxpa2VseSByZXF1aXJlcyBQbGF0Zm9ybSBDb3JlIHN1cHBvcnQgc28gdGhhdCBjaGFuZ2VzIHRvIHRoZXNlDQogIGZvbGRlcnMgY2FuIGJlIHJlZmxlY3RlZCBpbiByZXNvdXJjZSBkZWx0YXMuIFtKRFQgQ29yZSwgSkRUIFVJLCBQbGF0Zm9ybQ0KICBDb3JlLCBQbGF0Zm9ybSBVSSwgVGVhbV08L3A+DQo8cD4gPGI+U3VwcG9ydCBtdWx0aS1KQVINCnN5c3RlbSBsaWJyYXJpZXMuPC9iPiBTb21lIEpSRXMgKGluY2x1ZGluZyBNYWMgT1MgWCBhbmQgSUJNIDEuNCkgcGFja2FnZSZuYnNwOw0KdGhlIEphdmEgc3lzdGVtIGNsYXNzIGxpYnJhcmllcyBpbiBzZXZlcmFsIEpBUiBmaWxlcy4gSW1wcm92ZSBzdXBwb3J0IGZvciBzeXN0ZW0NCmNsYXNzIGxpYnJhcmllcyBzbyB0aGF0IGl0IGlzIG1vcmUgY29udmVuaWVudCB0byBkZXZlbG9wIGFuZCBydW4gYWdhaW5zdCB0aGVtLiBbSkRUDQpDb3JlLCBKRFQgVUldPC9wPg0KPHA+IDxiPkFkZCBuZXcgcmVmYWN0b3JpbmdzPC9iPi4gU3VwcG9ydCBhZGRpdGlvbmFsDQpyZWZhY3RvcmluZyBhY3Rpb25zLCBpbmNsdWRpbmcgZXh0cmFjdCBpbnRlcmZhY2UsIGFuZCBleHRyYWN0IGNvbnN0YW50LiBbSkRUDQpDb3JlLCBKRFQgVUldPC9wPg0KPC9ibG9ja3F1b3RlPg0KPGg0PlByb3Bvc2VkIEl0ZW1zIChFY2xpcHNlIEpEVCBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCjxwPjxpPk5vbmUgYXQgdGhpcyB0aW1lLjwvaT48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8aDQ+RGVmZXJyZWQgSXRlbXMgKEVjbGlwc2UgSkRUIHN1YnByb2plY3QpPC9oND4NCjxibG9ja3F1b3RlPg0KICA8cD48aT5Ob25lIGF0IHRoaXMgdGltZS48L2k+PC9wPg0KPC9ibG9ja3F1b3RlPg0KPGg0PlJlamVjdGVkIEl0ZW1zIChFY2xpcHNlIEpEVCBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCiAgPHA+PGk+Tm9uZSBhdCB0aGlzIHRpbWUuPC9pPjwvcD4NCjwvYmxvY2txdW90ZT4NCg0KDQoNCjxwPihFbmQgb2YgaXRlbXMgZm9yIEVjbGlwc2UgSkRUIHN1YnByb2plY3QuKQ0KDQoNCg0KPGgzPg0KDQo8YSBuYW1lPSJQbHVnLWluIGRldmVsb3BtZW50IGVudmlyb25tZW50IChQREUpIHN1YnByb2plY3QiPlBsdWctaW4gZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgKFBERSkgc3VicHJvamVjdDwvYT48L2gzPg0KDQpUaGUgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9wZGUvaW5kZXguaHRtbCI+IHBsdWctaW4gZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQ8L2E+IA0KKFBERSkgY29uc2lzdHMgb2YmbmJzcDt0b29scyBmb3IgZGV2ZWxvcGluZyBwbHVnLWlucyBmb3IgdGhlIEVjbGlwc2UgUGxhdGZvcm0uDQoNClRoZSBmb2xsb3dpbmcgd29yayBpdGVtcyByZWZsZWN0IG5ldyBmZWF0dXJlcyBvZiBQREUsIG9yIGFyZWFzIHdoZXJlIGV4aXN0aW5nDQoNCmZlYXR1cmVzIHdpbGwgYmUgc2lnbmlmaWNhbnRseSByZXdvcmtlZC4NCjxoND5Db21taXR0ZWQgSXRlbXMgKEVjbGlwc2UgUERFIHN1YnByb2plY3QpPC9oND4NCjxibG9ja3F1b3RlPiANCiAgPHA+IDxiPkltcHJvdmUgYnVpbGQgY2xhc3MgcGF0aCBmb3IgcGx1Zy1pbiBwcm9qZWN0cy48L2I+IFBsdWctaW5zIHRoYXQgbWFrZSANCiAgICBkaXJlY3QgcmVmZXJlbmNlIHRvIEpBUiBsaWJyYXJpZXMgb2YgcHJlcmVxdWlzaXRlIHBsdWctaW5zIGFyZSB2dWxuZXJhYmxlIA0KICAgIHRvIHZlcnNpb24gaWRzIGluIHBsdWctaW4gZW1iZWRkZWQgaW4gZGlyZWN0b3J5IG5hbWVzLiBUaGUgYWx0ZXJuYXRpdmUsIHVzaW5nIA0KICAgIGJpbmFyeSBsaWJyYXJ5IHBsdWctaW5zIGZvciBlYWNoIHByZXJlcXVpc2l0ZSBwbHVnLWluLCBsZWFkcyB0byBhIHByb2Z1c2lvbiANCiAgICBvZiBwcm9qZWN0cyBpbiB0aGUgd29ya3NwYWNlLiBQREUgd2lsbCBvZmZlciBhIHRoaXJkIGFsdGVybmF0aXZlIGJhc2VkIG9uIA0KICAgIEpEVCBjbGFzcyBwYXRoIGNvbnRhaW5lcnMgdGhhdCBhdm9pZHMgdGhlc2Ugc2hvcnRjb21pbmdzIGFuZCBpbnRlcm9wZXJhdGVzIA0KICAgIHdpdGggZXhpc3RpbmcgcGx1Zy1pbiBwcm9qZWN0cy48L3A+DQogIDxwPiA8Yj5BZGQgc3VwcG9ydCBmb3IgdXBkYXRlIHNpdGVzLjwvYj4gU2V0dGluZyB1cCBhbiBFY2xpcHNlIHVwZGF0ZSBzaXRlIGFuZCANCiAgICBidWlsZGluZyBpdHMgcGx1Zy1pbnMgYW5kIGZlYXR1cmVzIGlzIG5vdCBzdHJhaWdodGZvcndhcmQuIFBERSB3aWxsIG1ha2UgaXQgDQogICAgY29udmVuaWVudCB0byBkZWZpbmUgdGhlIGxheW91dCBvZiBhbiB1cGRhdGUgc2l0ZSBhbmQgY3JlYXRlIHRoZSB1cGRhdGUgc2l0ZSdzIA0KICAgIGNvbnRlbnRzLjwvcD4NCiAgPHA+IDxiPkltcHJvdmUgdXNhYmlsaXR5LjwvYj4gRjEgaGVscCBmb3IgYWxsIFBERSBkaWFsb2dzOyBpbXByb3ZlZCBQREUgZm9ybSANCiAgICBlZGl0b3JzOyBpbXByb3ZlZCBwbHVnLWluIG1hbmlmZXN0IGVkaXRvciBFeHRlbnNpb25zIHBhZ2U7IG1vcmUgdXNlci1mcmllbmRseSANCiAgICBzdXBwb3J0IGZvciBidWlsZGluZyBwbHVnLWlucyBhbmQgZmVhdHVyZXMuPC9wPg0KPC9ibG9ja3F1b3RlPg0KPGg0PlByb3Bvc2VkIEl0ZW1zIChFY2xpcHNlIFBERSBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCiAgPHA+PGk+Tm9uZSBhdCB0aGlzIHRpbWUuPC9pPjwvcD4NCjwvYmxvY2txdW90ZT4NCjxoND5EZWZlcnJlZCBJdGVtcyAoRWNsaXBzZSBQREUgc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+IA0KICA8cD4gPGI+QWRkIHRlbXBsYXRlIEFQSS48L2I+IEFQSSBmb3IgUERFIHRlbXBsYXRlIHdpemFyZHMgd2lsbCBiZSBkZWZpbmVkLCBhbGxvd2luZyANCiAgICBvdGhlciBwbHVnLWlucyB0byBjb250cmlidXRlIHRlbXBsYXRlcyBmb3IgdGhlaXIgZXh0ZW5zaW9uIHBvaW50cy48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8aDQ+UmVqZWN0ZWQgSXRlbXMgKEVjbGlwc2UgUERFIHN1YnByb2plY3QpPC9oND4NCjxibG9ja3F1b3RlPg0KICA8cD48aT5Ob25lIGF0IHRoaXMgdGltZS48L2k+PC9wPg0KPC9ibG9ja3F1b3RlPg0KDQoNCg0KPHA+KEVuZCBvZiBpdGVtcyBmb3IgRWNsaXBzZSBQREUgc3VicHJvamVjdC4pDQoNCjwvYm9keT4NCg0KPC9odG1sPg0KDQo=