PCFkb2N0eXBlIGh0bWwgcHVibGljICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4NCg0KPGh0bWw+DQoNCjxoZWFkPg0KDQogICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPg0KDQogICA8bWV0YSBuYW1lPSJBdXRob3IiIGNvbnRlbnQ9IkVjbGlwc2UgUHJvamVjdCBQTUMiPg0KDQogICA8bWV0YSBuYW1lPSJHRU5FUkFUT1IiIGNvbnRlbnQ9Ik1pY3Jvc29mdCBGcm9udFBhZ2UgNC4wIj4NCg0KICAgPG1ldGEgbmFtZT0iUHJvZ0lkIiBjb250ZW50PSJGcm9udFBhZ2UuRWRpdG9yLkRvY3VtZW50Ij4NCg0KICAgPHRpdGxlPkVjbGlwc2UgUHJvamVjdCAyLjEgUGxhbiAoRmluYWwpPC90aXRsZT4NCg0KICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9kZWZhdWx0X3N0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KDQo8L2hlYWQ+DQoNCjxib2R5Pg0KDQoNCg0KPGgxPg0KDQpFY2xpcHNlIFByb2plY3Q8YnI+DQogIDIuMSBQbGFuIChGaW5hbCk8L2gxPg0KDQo8cD5MYXN0IHJldmlzZWQgTW9uZGF5LCBNYXJjaCAxNywgMjAwMyAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4gDQogIG1hcmtzIGludGVyZXN0aW5nIGNoYW5nZXMgc2luY2UgdGhlIDxhIGhyZWY9ImVjbGlwc2VfcHJvamVjdF9wbGFuXzJfMV8yMDAzMDIyMS5odG1sIj5wcmV2aW91cyANCiAgZHJhZnQgb2YgRmViLiAyMSwgMjAwMzwvYT4pPGJyPg0KPGJyPg0KPGk+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+DQoNCjxwPiBEZXBlbmRpbmcgb24gdGhlIGNpcmN1bXN0YW5jZXMsIHdlIG1heSBhZGQgYWRkaXRpb25hbCByZWxlYXNlIGNhbmRpZGF0ZSBidWlsZHMgDQogIG9yIGZpbmUtdHVuZSB0aGUgc2NoZWR1bGUuIFRoZSAyLjEgcmVsZWFzZSBpcyB0YXJnZXRlZCBmb3IgRnJpZGF5IE1hcmNoIDI4LCANCiAgMjAwMy4gU2VlIHRoZSA8YSBocmVmPSJodHRwOi8vZGV2LmVjbGlwc2Uub3JnL3ZpZXdjdnMvaW5kZXguY2dpLyU3RWNoZWNrb3V0JTdFL2VjbGlwc2UtcHJvamVjdC1ob21lL3BsYW5zL2ZyZWV6ZV9wbGFuXzJfMS5odG1sIj5FY2xpcHNlIA0KICAyLjEgRW5kZ2FtZSBQbGFuPC9hPiBmb3IgZnVydGhlciBkZXRhaWxzLiBBbGwgcmVsZWFzZSBkZWxpdmVyYWJsZXMgd2lsbCBiZSBhdmFpbGFibGUgDQogIGZvciBkb3dubG9hZCBhcyBzb29uIGFzIHRoZSByZWxlYXNlIGhhcyBiZWVuIHRlc3RlZCBhbmQgdmFsaWRhdGVkIGluIHRoZSB0YXJnZXQgDQogIG9wZXJhdGluZyBjb25maWd1cmF0aW9ucyBsaXN0ZWQgYmVsb3cuPC9wPg0KPGgyPjxhIG5hbWU9IlRhcmdldE9wZXJhdGluZ0Vudmlyb25tZW50cyI+PC9hPlRhcmdldCBPcGVyYXRpbmcgRW52aXJvbm1lbnRzPC9oMj4NCg0KDQoNCjxwPkluIG9yZGVyIHRvIHJlbWFpbiBjdXJyZW50LCBlYWNoIEVjbGlwc2UgcmVsZWFzZSB0YXJnZXRzIHJlYXNvbmFibHkgY3VycmVudA0KdmVyc2lvbnMgb2YgdGhlIHVuZGVybHlpbmcgb3BlcmF0aW5nIGVudmlyb25tZW50cy48L3A+DQoNCjxwPk1vc3Qgb2YgdGhlIEVjbGlwc2UgU0RLIGlzICZxdW90O3B1cmUmcXVvdDsgSmF2YSZ0cmFkZTsgY29kZSBhbmQgaGFzIG5vIGRpcmVjdA0KZGVwZW5kZW5jZSBvbiB0aGUgdW5kZXJseWluZyBvcGVyYXRpbmcgc3lzdGVtLiBUaGUgY2hpZWYgZGVwZW5kZW5jZSBpcyB0aGVyZWZvcmUNCm9uIHRoZSBKYXZhIDIgUGxhdGZvcm0gaXRzZWxmLiBUaGUgMi4xIHJlbGVhc2Ugb2YgdGhlIEVjbGlwc2UgUHJvamVjdCBpcyB3cml0dGVuDQphbmQgY29tcGlsZWQgYWdhaW5zdCB2ZXJzaW9uIDEuMyBvZiB0aGUgSmF2YSAyIFBsYXRmb3JtIEFQSXMsIGFuZCB0YXJnZXRlZCB0bw0KcnVuIG9uIGVpdGhlciB2ZXJzaW9uIDEuMyBvciAxLjQgb2YgdGhlIEphdmEgMiBSdW50aW1lIEVudmlyb25tZW50LCBTdGFuZGFyZA0KRWRpdGlvbi48L3A+DQo8cD5FY2xpcHNlIFNESyAyLjEgd2lsbCBiZSB0ZXN0ZWQgYW5kIHZhbGlkYXRlZCBvbiB0aGUgZm9sbG93aW5nIEphdmEgMg0KUGxhdGZvcm0gaW1wbGVtZW50YXRpb25zOjwvcD4NCjx0YWJsZSB3aWR0aD0iOTElIiBib3JkZXI9IjEiPg0KICA8dGJvZHk+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiPjxiPk9wZXJhdGluZyBzeXN0ZW08L2I+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTglIj48Yj5Qcm9jZXNzb3IgYXJjaGl0ZWN0dXJlPC9iPjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjczJSI+PGI+SmF2YSAyIFBsYXRmb3JtczwvYj48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiIHJvd1NwYW49IjQiPk1pY3Jvc29mdK48YnI+DQogICAgICAgIFdpbmRvd3OuPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTglIiByb3dTcGFuPSI0Ij5JbnRlbCB4ODY8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI3MyUiPiBTdW4gSmF2YSAyIFNESywgU3RhbmRhcmQgRWRpdGlvbiwgdmVyc2lvbiAxLjMuMV8wNiBmb3IgDQogICAgICAgIE1pY3Jvc29mdCBXaW5kb3dzPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj4gU3VuIEphdmEgMiBTREssIFN0YW5kYXJkIEVkaXRpb24sIHZlcnNpb24gMS40LjFfMDEgZm9yIA0KICAgICAgICBNaWNyb3NvZnQgV2luZG93czwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICANCiAgICA8dGQgd2lkdGg9IjczJSI+IElCTSBEZXZlbG9wZXIgS2l0IGZvciBXaW5kb3dzLCBKYXZhIDIgVGVjaG5vbG9neSBFZGl0aW9uLCANCiAgICAgIHZlcnNpb24gMS4zLjEgU1ItMiAocGVuZGluZyBmaXggdG8gVk0gZGVmZWN0IHVuY292ZXJlZCBpbiBTUi0zKTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjczJSI+IElCTSAzMi1iaXQgU0RLIGZvciBXaW5kb3dzLCBKYXZhIDIgVGVjaG5vbG9neSBFZGl0aW9uLCANCiAgICAgICAgdmVyc2lvbiAxLjQuMDwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjIxJSIgcm93U3Bhbj0iMyI+TGludXg8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOCUiIHJvd1NwYW49IjMiPkludGVsIHg4NjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjczJSI+IFN1biBKYXZhIDIgU0RLLCBTdGFuZGFyZCBFZGl0aW9uLCB2ZXJzaW9uIDEuMy4xXzA2IGZvciANCiAgICAgICAgTGludXggeDg2PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj4gU3VuIEphdmEgMiBTREssIFN0YW5kYXJkIEVkaXRpb24sIHZlcnNpb24gMS40LjFfMDEgZm9yIA0KICAgICAgICBMaW51eCB4ODY8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgDQogICAgPHRkIHdpZHRoPSI3MyUiPiBJQk0gRGV2ZWxvcGVyIEtpdCBmb3IgTGludXgsIEphdmEgMiBUZWNobm9sb2d5IEVkaXRpb24sIHZlcnNpb24gDQogICAgICAxLjMuMSBTUi0yIChwZW5kaW5nIGZpeCB0byBWTSBkZWZlY3QgdW5jb3ZlcmVkIGluIFNSLTMpPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iMjElIiByb3dTcGFuPSIyIj5TdW4gU29sYXJpczwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE4JSIgcm93U3Bhbj0iMiI+U1BBUkM8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI3MyUiPiBTdW4gSmF2YSAyIFNESywgU3RhbmRhcmQgRWRpdGlvbiwgdmVyc2lvbiAxLjMuMV8wNiBmb3IgDQogICAgICAgIFNvbGFyaXMgU1BBUkM8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSI3MyUiPiBTdW4gSmF2YSAyIFNESywgU3RhbmRhcmQgRWRpdGlvbiwgdmVyc2lvbiAxLjQuMV8wMSBmb3IgDQogICAgICAgIFNvbGFyaXMgU1BBUkM8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiPkhQIEhQLVVYPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTglIj5ocDkwMDAgUEEtUklTQzwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjczJSI+PHNwYW4gY2xhc3M9ImhlYWRlciI+SFAtVVggU0RLIGZvciB0aGUgSmF2YSAyIHBsYXRmb3JtLA0KICAgICAgICB2ZXJzaW9uIDEuMy4xIGZvciBocDkwMDAgUEEtUklTQzwvc3Bhbj48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiPklCTa4gQUlYPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTglIj5Qb3dlclBDPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj4gSUJNIERldmVsb3BlciBLaXQgZm9yIEFJWCwgSmF2YSAyIFRlY2hub2xvZ3kgRWRpdGlvbiwgdmVyc2lvbiANCiAgICAgICAgMS4zLjE8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiIHJvd1NwYW49IjIiPkFwcGxlriBNYWOuIE9TPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTglIiByb3dTcGFuPSIyIj5Qb3dlclBDPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj5KYXZhIDIgUGxhdGZvcm0sIFN0YW5kYXJkIEVkaXRpb24sIHZlcnNpb24gMS4zLjEgZm9yIE1hYyANCiAgICAgICAgT1MgWDwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjczJSI+SmF2YSAyIFBsYXRmb3JtLCBTdGFuZGFyZCBFZGl0aW9uLCB2ZXJzaW9uIDEuNC4xIGZvciBNYWMgDQogICAgICAgIE9TIFg8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiPjxzcGFuIGNsYXNzPSJ0aXRsZSI+UU5YPC9zcGFuPq48c3BhbiBjbGFzcz0idGl0bGUiPiBOZXV0cmlubzwvc3Bhbj6uPHNwYW4gY2xhc3M9InRpdGxlIj4gDQogICAgICAgIFJUT1M8L3NwYW4+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTglIj5JbnRlbCB4ODY8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI3MyUiPklCTSBKOSBWTSBmb3IgUU5YLCB2ZXJzaW9uIDIuMDwvdGQ+DQogICAgPC90cj4NCiAgPC90Ym9keT4NCjwvdGFibGU+DQo8cD48c3BhbiBjbGFzcz0iaGVhZGVyIj5UaGUgZm9sbG93aW5nIHRhYmxlIGRlc2NyaWJlcyB0aGUgY29tYmluYXRpb25zIG9mDQpvcGVyYXRpbmcgc3lzdGVtIGFuZCBKYXZhIDIgUGxhdGZvcm0gdXNlZCB3aGVuIHRlc3RpbmcgdGhlIEVjbGlwc2UgU0RLDQpjb25maWd1cmF0aW9ucy4gVGhlIHN0YXR1cyBjb2x1bW4gaW5kaWNhdGVzIHRoZSBsZXZlbCBvZiB0ZXN0aW5nOg0KJnF1b3Q7UHJpbWFyeSZxdW90OyBtZWFucyBhIGZ1bGwgdGVzdGVkIGNvbmZpZ3VyYXRpb247ICZxdW90Ozwvc3Bhbj5TZWNvbmRhcnkmcXVvdDsNCm1lYW5zIGEgY29uZmlndXJhdGlvbiB3aGljaCBpcyBvbmx5IGxpZ2h0bHkgdGVzdGVkOyAmcXVvdDtVbnRlc3RlZCZxdW90OyBtZWFucyBhDQpjb25maWd1cmF0aW9uIHRoYXQgaGFzIHJlY2VpdmVkIG5vIHRlc3RpbmcsIGJ1dCB3aGljaCBzaG91bGQgd29yay48L3A+DQo8dGFibGUgd2lkdGg9IjkxJSIgYm9yZGVyPSIxIiBoZWlnaHQ9IjQxNSI+DQogIDx0Ym9keT4NCiAgICA8dHI+IA0KICAgICAgPHRkIHdpZHRoPSIxMSUiIGhlaWdodD0iMzIiPjxiPldpbmRvdyBzeXN0ZW08L2I+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMjglIiBoZWlnaHQ9IjMyIj48Yj5KYXZhIDIgUGxhdGZvcm08YnI+DQogICAgICAgIChzZWUgYWJvdmUgdGFibGUpPC9iPjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIzMiI+PGI+T3BlcmF0aW5nIEVudmlyb25tZW50PC9iPjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIzMiI+PGI+VGVzdGluZyBTdGF0dXM8L2I+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4gDQogICAgICA8dGQgd2lkdGg9IjExJSIgcm93U3Bhbj0iNSIgaGVpZ2h0PSIxMDQiPldpbjMyPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMjglIiByb3dTcGFuPSI1IiBoZWlnaHQ9IjEwNCI+V2luZG93cyBvbiBJbnRlbCB4ODY8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPldpbmRvd3MgWFA8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5XaW5kb3dzIDIwMDA8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5XaW5kb3dzIE1FPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTklIiBoZWlnaHQ9IjE2Ij5TZWNvbmRhcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5XaW5kb3dzIDk4U0U8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPlNlY29uZGFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+IA0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPldpbmRvd3MgTlQ8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPlNlY29uZGFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+IA0KICAgICAgPHRkIHdpZHRoPSIxMSUiIHJvd1NwYW49IjYiIGhlaWdodD0iMTUyIj5Nb3RpZjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjI4JSIgcm93U3Bhbj0iMyIgaGVpZ2h0PSI4NiI+Jm5ic3A7IDxwPkxpbnV4IG9uIEludGVsIHg4NjwvcD4NCiAgICAgICAgPHA+Jm5ic3A7PC9wPjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIyNSI+UmVkSGF0IExpbnV4IDguMCB4ODY8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMjUiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjI1Ij5TdVNFIExpbnV4IDguMSB4ODY8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMjUiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjI0Ij5PdGhlciBMaW51eDsga2VybmVsIHZlcnNpb24gMi40LjcsIGFuZCBYRnJlZTg2IA0KICAgICAgICB2ZXJzaW9uIDQuMS4wPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTklIiBoZWlnaHQ9IjI0Ij5VbnRlc3RlZDwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+IA0KICAgICAgPHRkIHdpZHRoPSIyOCUiIGhlaWdodD0iMTYiPlNvbGFyaXMgb24gU1BBUkMmbmJzcDs8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPlN1biBTb2xhcmlzIDggU1BBUkM8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIDx0ZCB3aWR0aD0iMjglIiBoZWlnaHQ9IjE2Ij5IUC1VWCBvbiBocDkwMDAgUEEtUklTQzwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIxNiI+SFAtVVggMTFpIGhwOTAwMDwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+UHJpbWFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+IA0KICAgICAgPHRkIHdpZHRoPSIyOCUiIGhlaWdodD0iMTYiPkFJWCBvbiBQb3dlclBDPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5JQk0gQUlYIDUuMSBvbiBQb3dlclBDPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTklIiBoZWlnaHQ9IjE2Ij5QcmltYXJ5PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4gDQogICAgICA8dGQgd2lkdGg9IjExJSIgcm93U3Bhbj0iNCIgaGVpZ2h0PSI4MSI+R1RLPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMjglIiByb3dTcGFuPSI0IiBoZWlnaHQ9IjgxIj5MaW51eCBvbiBJbnRlbCB4ODY8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIDx0ZCBoZWlnaHQ9IjE1Ij5SZWRIYXQgTGludXggOC4wIHg4NiAoR1RLIDIuMiByZXF1aXJlZCBmb3IgREJDUyk8L3RkPg0KICAgICAgPHRkIGhlaWdodD0iMTUiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIA0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPlN1U0UgTGludXggOC4xIHg4NiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4gDQogICAgICAgIExhdGluLTEgb25seSk8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5PdGhlciBMaW51eDsgR1RLIDIuMC42IChHVEsgMi4yIHJlcXVpcmVkIGZvciBEQkNTKTwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+VW50ZXN0ZWQ8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIDx0ZCB3aWR0aD0iMTElIiBoZWlnaHQ9IjE2Ij5DYXJib248L3RkPg0KICAgICAgPHRkIHdpZHRoPSIyOCUiIGhlaWdodD0iMTYiPk1hYyBPUyBYIG9uIFBvd2VyUEM8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPk1hYyBPUyBYIDEwLjI8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPjxpPkVhcmx5IGFjY2VzczwvaT48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPiANCiAgICAgIDx0ZCB3aWR0aD0iMTElIiBoZWlnaHQ9IjE2Ij5QaG90b26uPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMjglIiBoZWlnaHQ9IjE2Ij5JQk0gSjkgVk0gZm9yIFFOWDwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIxNiI+UU5YIE5ldXRyaW5vIFJUT1MgNi4yLjEmbmJzcDs8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogIDwvdGJvZHk+DQo8L3RhYmxlPg0KPGg0PkludGVybmF0aW9uYWxpemF0aW9uPC9oND4NCjxwPlRoZSBFY2xpcHNlIFBsYXRmb3JtIGlzIGRlc2lnbmVkIGFzIHRoZSBiYXNpcyBmb3IgaW50ZXJuYXRpb25hbGl6ZWQgcHJvZHVjdHMuDQpUaGUgdXNlciBpbnRlcmZhY2UgZWxlbWVudHMgcHJvdmlkZWQgYnkgdGhlIEVjbGlwc2UgU0RLIGNvbXBvbmVudHMsIGluY2x1ZGluZw0KZGlhbG9ncyBhbmQgZXJyb3IgbWVzc2FnZXMsIGFyZSBleHRlcm5hbGl6ZWQuIFRoZSBFbmdsaXNoIHN0cmluZ3MgYXJlIHByb3ZpZGVkDQphcyB0aGUgZGVmYXVsdCByZXNvdXJjZSBidW5kbGVzLjwvcD4NCjxwPkxhdGluLTEgbG9jYWxlcyBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBFY2xpcHNlIFNESyBvbiBhbGwgb2YgdGhlIGFib3ZlIG9wZXJhdGluZyANCiAgZW52aXJvbm1lbnRzOyBEQkNTIGxvY2FsZXMgYXJlIHN1cHBvcnRlZCBieSB0aGUgRWNsaXBzZSBTREsgb24gdGhlIFdpbmRvd3MsIA0KICBHVEssIGFuZCBNb3RpZiB3aW5kb3cgc3lzdGVtczsgQklESSBsb2NhbGVzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIEVjbGlwc2UgU0RLIA0KICBvbmx5IG9uIFdpbmRvd3Mgb3BlcmF0aW5nIGVudmlyb25tZW50cy4NCjxwPlRoZSBFY2xpcHNlIFNESyBzdXBwb3J0cyBHQiAxODAzMCwgdGhlIG5ldyBDaGluZXNlIGNvZGUgcGFnZSBzdGFuZGFyZCwgb24gV2luZG93cyANCiAgWFAgYW5kIDIwMDAsIGFuZCBMaW51eC4gDQogIE5vdGUsIGhvd2V2ZXIsIHRoYXQgR0IgMTgwMzAgYWxzbyByZXF1aXJlcyBsb2NhbGUgYW5kIGNoYXJhY3RlciBlbmNvZGluZyBzdXBwb3J0IA0KICBmcm9tIHRoZSBKYXZhIDIgUnVudGltZSBFbnZpcm9ubWVudDsgdGhpcyBzdXBwb3J0IGlzIHN0YW5kYXJkIGluIHZlcnNpb24gMS40LCANCiAgYW5kIGFsc28gYXZhaWxhYmxlIGluIHNvbWUgMS4zIEpSRXMuDQo8cD4gR2VybWFuIGFuZCBKYXBhbmVzZSBsb2NhbGVzIGhhdmUgYmVlbiB0ZXN0ZWQuIA0KPGg0PkJJREkgc3VwcG9ydDwvaDQ+DQo8cD5UaGUgRWNsaXBzZSBTREsgaXMgYSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCB0YXJnZXRlZCBhdCB0ZWNobmljYWwNCnByb2Zlc3Npb25hbHMgLSBub3QgYW4gZW5kIHVzZXIgYXBwbGljYXRpb24uIEhvd2V2ZXIsIHRoZSBFY2xpcHNlIFNESyB0b29scyB3aWxsDQpwZXJtaXQgdGVjaG5pY2FsIHByb2Zlc3Npb25hbHMgd2hvIGFyZSB3b3JraW5nIGluIEVuZ2xpc2ggdG8gYnVpbGQgSGVicmV3L0FyYWJpYw0KZW5kIHVzZXIgSmF2YSBwcm9ncmFtcyB3aGljaCBhcmUgdGhlbXNlbHZlcyBub3QgYmFzZWQgb24gdGhlIEVjbGlwc2UgU0RLLiBUaGUNCkJJREkgc3VwcG9ydCBpbiB0aGUgRWNsaXBzZSBTREsgYWxsb3dzIGEgSmF2YSBwcm9ncmFtbWVyIHRvIHdvcmsgd2l0aCBCSURJDQpzdHJpbmdzLCBjb2RlIGNvbW1lbnRzLCBldGMuIGJ1dCB0aGUgRWNsaXBzZSBTREsgaXRzZWxmIGlzIG5vdCBkZXNpZ25lZCB0byBiZQ0KbG9jYWxpemVkIGZvciBCSURJIGxvY2FsZXMgYW5kIGl0cyB3aWRnZXQgb3JpZW50YXRpb24gY2FuIG5vdCBiZSBjaGFuZ2VkLjwvcD4NCjxwPjxpPklNUE9SVEFOVDogVGhlIGFib3ZlIEJJREkgc3VwcG9ydCBpcyBhdmFpbGFibGUgb25seSBvbiBXaW5kb3dzIHBsYXRmb3Jtcy48L2k+PC9wPg0KDQo8aDI+DQoNCkNvbXBhdGliaWxpdHkgd2l0aCBQcmV2aW91cyBSZWxlYXNlczwvaDI+DQoNCjxwPg0KDQpJdCBpcyBhIGdpdmVuIHRoYXQgRWNsaXBzZSAyLjEgd2lsbCBiZSB1cHdhcmRzIGNvbXBhdGlibGUgd2l0aCBFY2xpcHNlIDIuMC4gQW4gaW5jb21wYXRpYmxlIGJyZWFrIHdpdGggdGhlIHBhc3QgdGhpcyBlYXJseSBvbiB3b3VsZCBiZSBib3RoIHVud2VsY29tZSBhbmQNCnVud2FycmFudGVkLjwvcD4NCg0KPGgzPg0KDQpDb21wYXRpYmlsaXR5IG9mIFJlbGVhc2UgMi4xIHdpdGggMi4wPC9oMz4NCg0KIEVjbGlwc2UgU0RLIDIuMSB3aWxsIGJlIHVwd2FyZHMgY29tcGF0aWJsZSB3aXRoIEVjbGlwc2UgU0RLIDIuMCB0byB0aGUgDQpncmVhdGVzdCBleHRlbnQgcG9zc2libGUuIFdlIGFudGljaXBhdGUgYSBzbWFsbCBudW1iZXIgb2YgYXJlYXMgd2hlcmUgc2xhdmlzaGx5IA0KbWFpbnRhaW5pbmcgY29tcGF0aWJpbGl0eSB3b3VsZCBub3QgYmUgaW4gdGhlIGJlc3QgaW50ZXJlc3RzIG9mIHRoZSBQbGF0Zm9ybSBvciANCml0cyBjbGllbnRzLiBBbGwgc3VjaCBleGNlcHRpb25zIHdpbGwgYmUgbm90ZWQgaW4gdGhlIDIuMSByZWxlYXNlIG5vdGVzIHNvIHRoYXQgDQpjbGllbnRzIGNhbiBhc3Nlc3MgdGhlIGltcGFjdCBvZiB0aGVzZSBjaGFuZ2VzIG9uIHRoZWlyIHBsdWctaW5zIGFuZCBwcm9kdWN0cy4NCg0KPHA+PGI+QVBJIENvbnRyYWN0IENvbXBhdGliaWxpdHk6PC9iPiBFY2xpcHNlIFNESyAyLjEgd2lsbCBiZSB1cHdhcmRzIGNvbnRyYWN0LWNvbXBhdGlibGUgDQogIHdpdGggRWNsaXBzZSBTREsgMi4wIHVubGVzcyBub3RlZC4gVGhpcyBtZWFucyB0aGF0IHByb2dyYW1zIGluIGZ1bGwgY29tcGxpYW5jZSANCiAgd2l0aCBjb250cmFjdHMgc3BlY2lmaWVkIGluIEVjbGlwc2UgU0RLIDIuMCBBUElzIHdpbGwgYXV0b21hdGljYWxseSBiZSBpbiBmdWxsIA0KICBjb21wbGlhbmNlIHdpdGggRWNsaXBzZSBTREsgMi4xIEFQSXMuIChBUEkgaXMgY29uc3RydWVkIGJyb2FkbHkgdG8gaW5jbHVkZSBzdWNoIA0KICB0aGluZ3MgYXMgcGx1Zy1pbiBleHRlbnNpb24gcG9pbnRzLikgRG93bndhcmQgY29udHJhY3QgY29tcGF0aWJpbGl0eSBpcyBub3QgDQogIHN1cHBvcnRlZC4gVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgY29tcGxpYW5jZSB3aXRoIEVjbGlwc2UgU0RLIDIuMSBBUElzIHdvdWxkIA0KICBlbnN1cmUgY29tcGxpYW5jZSB3aXRoIEVjbGlwc2UgU0RLIDIuMCBBUElzLiBSZWZlciB0byA8aT48YSBocmVmPSJodHRwOi8vZWNsaXBzZS5vcmcvZWNsaXBzZS9kZXZlbG9wbWVudC9qYXZhLWFwaS1ldm9sdXRpb24uaHRtbCI+RXZvbHZpbmcgDQogIEphdmEtYmFzZWQgQVBJczwvYT48L2k+IGZvciBhIGRpc2N1c3Npb24gb2YgdGhlIGtpbmRzIG9mIEFQSSBjaGFuZ2VzIHRoYXQgbWFpbnRhaW4gDQogIGNvbnRyYWN0IGNvbXBhdGliaWxpdHkuIA0KPHA+PGI+QmluYXJ5IChwbHVnLWluKSBDb21wYXRpYmlsaXR5OjwvYj4gRWNsaXBzZSBTREsgMi4xIHdpbGwgYmUgdXB3YXJkcyBiaW5hcnktY29tcGF0aWJsZSANCiAgd2l0aCBFY2xpcHNlIFNESyAyLjAgdW5sZXNzIG5vdGVkLiBUaGlzIG1lYW5zIHRoYXQgcGx1Zy1pbnMgYnVpbHQgZm9yIEVjbGlwc2UgDQogIFNESyAyLjAgd2lsbCBjb250aW51ZSB0byB3b3JrIGNvcnJlY3RseSBpbiBFY2xpcHNlIFNESyAyLjEgd2l0aG91dCBjaGFuZ2UuIERvd253YXJkIA0KICBwbHVnLWluIGNvbXBhdGliaWxpdHkgaXMgbm90IHN1cHBvcnRlZC4gUGx1Zy1pbnMgZm9yIEVjbGlwc2UgU0RLIDIuMSBhcmUgdW5saWtlbHkgDQogIHRvIGJlIHVzYWJsZSBpbiBFY2xpcHNlIFNESyAyLjAuIFBsdWctaW5zIHdpdGggaGFyZC1jb2RlZCByZWZlcmVuY2VzIGluIHRoZWlyIA0KICBwbHVnLWluIG1hbmlmZXN0IGZpbGUgdG8gMi4wIHZlcnNpb25zIG9mIHByZXJlcXVpc2l0ZSBFY2xpcHNlIFByb2plY3QgcGx1Zy1pbnMgDQogIHdpbGwgd29yayBpbiAyLjEgcHJvdmlkZWQgdGhlIHZlcnNpb24gbWF0Y2ggcnVsZSBpcyAmcXVvdDtncmVhdGVyT3JFcXVhbCZxdW90OyANCiAgb3IgJnF1b3Q7Y29tcGF0aWJsZSZxdW90OyAodGhlIGRlZmF1bHQpOyByZWZlcmVuY2VzIHVzaW5nICZxdW90O3BlcmZlY3QmcXVvdDsgDQogIG9yICZxdW90O2VxdWl2YWxlbnQmcXVvdDsgbWF0Y2ggcnVsZXMgd2lsbCBiZSBicm9rZW4uIFJlZmVyIHRvIDxpPjxhIGhyZWY9Imh0dHA6Ly9lY2xpcHNlLm9yZy9lY2xpcHNlL2RldmVsb3BtZW50L2phdmEtYXBpLWV2b2x1dGlvbi5odG1sIj5Fdm9sdmluZyANCiAgSmF2YS1iYXNlZCBBUElzPC9hPjwvaT4gZm9yIGEgZGlzY3Vzc2lvbiBvZiB0aGUga2luZHMgb2YgQVBJIGNoYW5nZXMgdGhhdCBtYWludGFpbiANCiAgYmluYXJ5IGNvbXBhdGliaWxpdHkuIA0KPHA+PGI+U291cmNlIENvbXBhdGliaWxpdHk6PC9iPiBFY2xpcHNlIFNESyAyLjEgd2lsbCBiZSB1cHdhcmRzIHNvdXJjZS1jb21wYXRpYmxlIA0KICB3aXRoIEVjbGlwc2UgU0RLIDIuMCB1bmxlc3Mgbm90ZWQuIFRoaXMgbWVhbnMgdGhhdCBzb3VyY2UgZmlsZXMgd3JpdHRlbiANCiAgdG8gdXNlIEVjbGlwc2UgU0RLIDIuMCBBUElzIGNhbiBiZSBzdWNjZXNzZnVsbHkgY29tcGlsZWQgYW5kIHJ1biBhZ2FpbnN0IEVjbGlwc2UgU0RLIDIuMSBBUElzLiBTaW5jZSBzb3VyY2UgaW5jb21wYXRpYmlsaXRpZXMgYXJlIGVhc3kgdG8gZGVhbCB3aXRoLCANCiAgbWFpbnRhaW5pbmcgc291cmNlIGNvbXBhdGliaWxpdHkgaXMgY29uc2lkZXJlZCBtdWNoIGxlc3MgaW1wb3J0YW50IHRoYW4gbWFpbnRhaW5pbmcgDQogIGNvbnRyYWN0IGFuZCBiaW5hcnkgY29tcGF0aWJpbGl0eS4gRG93bndhcmQgc291cmNlIGNvbXBhdGliaWxpdHkgaXMgbm90IHN1cHBvcnRlZC4gDQogIElmIHNvdXJjZSBmaWxlcyB1c2UgbmV3IEVjbGlwc2UgU0RLIEFQSXMsIHRoZXkgd2lsbCBub3QgYmUgdXNhYmxlIHdpdGggYW4gZWFybGllciANCiAgdmVyc2lvbiBvZiBFY2xpcHNlIFNESy4gDQo8cD48Yj5Xb3Jrc3BhY2UgQ29tcGF0aWJpbGl0eTo8L2I+IEVjbGlwc2UgU0RLIDIuMSB3aWxsIGJlIHVwd2FyZHMgd29ya3NwYWNlLWNvbXBhdGlibGUgDQogIHdpdGggRWNsaXBzZSBTREsgMi4wIHVubGVzcyBub3RlZC4gVGhpcyBtZWFucyB0aGF0IHdvcmtzcGFjZXMgYW5kIHByb2plY3RzIGNyZWF0ZWQgDQogIHdpdGggRWNsaXBzZSBTREsgMi4wIGNhbiBiZSBzdWNjZXNzZnVsbHkgb3BlbmVkIGJ5IEVjbGlwc2UgU0RLIDIuMSBhbmQgdXBncmFkZWQgDQogIHRvIGEgMi4xIHdvcmtzcGFjZS4gVGhpcyBpbmNsdWRlcyBib3RoIGhpZGRlbiBtZXRhZGF0YSwgd2hpY2ggaXMgbG9jYWxpemVkIHRvIA0KICBhIHBhcnRpY3VsYXIgd29ya3NwYWNlLCBhcyB3ZWxsIGFzIG1ldGFkYXRhIGZpbGVzIGZvdW5kIHdpdGhpbiBhIHdvcmtzcGFjZSBwcm9qZWN0IA0KICAoZS5nLiwgdGhlIC5wcm9qZWN0IGZpbGUpLCB3aGljaCBtYXkgcHJvcGFnYXRlIGJldHdlZW4gd29ya3NwYWNlcyB2aWEgZmlsZSBjb3B5aW5nIA0KICBvciB0ZWFtIHJlcG9zaXRvcmllcy4gSW5kaXZpZHVhbCBwbHVnLWlucyBkZXZlbG9wZWQgZm9yIEVjbGlwc2UgU0RLIDIuMSBzaG91bGQgDQogIHByb3ZpZGUgc2ltaWxhciB1cHdhcmRzIGNvbXBhdGliaWxpdHkgZm9yIHRoZWlyIGhpZGRlbiBhbmQgdmlzaWJsZSB3b3Jrc3BhY2UgDQogIG1ldGFkYXRhIGNyZWF0ZWQgYnkgZWFybGllciB2ZXJzaW9uczsgMi4xIHBsdWctaW4gZGV2ZWxvcGVycyBhcmUgcmVzcG9uc2libGUgDQogIGZvciBlbnN1cmluZyB0aGF0IHRoZWlyIHBsdWctaW5zIHJlY29nbml6ZSBib3RoIDIuMSBhbmQgMi4wIG1ldGFkYXRhIGFuZCBwcm9jZXNzIA0KICBpdCBhcHByb3ByaWF0ZWx5LiBVc2VyIGludGVyZmFjZSBzZXNzaW9uIHN0YXRlIG1heSBiZSBkaXNjYXJkZWQgd2hlbiBhIHdvcmtzcGFjZSANCiAgaXMgdXBncmFkZWQuIERvd253YXJkIHdvcmtzcGFjZSBjb21wYXRpYmlsaXR5IGlzIG5vdCBzdXBwb3J0ZWQuIEEgd29ya3NwYWNlIA0KICBjcmVhdGVkIChvciBvcGVuZWQpIGJ5IEVjbGlwc2UgU0RLIDIuMSB3aWxsIGJlIHVudXNhYmxlIHdpdGggYW4gZWFybGllciB2ZXJzaW9uIA0KICBvZiBFY2xpcHNlIFNESy4mbmJzcDtWaXNpYmxlIG1ldGFkYXRhIGZpbGVzIGNyZWF0ZWQgKG9yIG92ZXJ3cml0dGVuKSBieSBFY2xpcHNlIA0KICBTREsgMi4xIHdpbGwgZ2VuZXJhbGx5IGJlIHVudXNhYmxlIHdpdGggZWFybGllciB2ZXJzaW9ucyBvZiBFY2xpcHNlIFNESy4mbmJzcDsgDQo8cD48Yj5Ob24tY29tcGxpYW50IHVzYWdlIG9mIEFQSSdzPC9iPjogQWxsIG5vbi1BUEkgbWV0aG9kcyBhbmQgY2xhc3NlcywgYW5kIGNlcnRhaW5seSANCiAgZXZlcnl0aGluZyBpbiBhIHBhY2thZ2Ugd2l0aCAmcXVvdDtpbnRlcm5hbCZxdW90OyBpbiBpdHMgbmFtZSwgYXJlIGNvbnNpZGVyZWQgDQogIGltcGxlbWVudGF0aW9uIGRldGFpbHMgd2hpY2ggbWF5IHZhcnkgYmV0d2VlbiBvcGVyYXRpbmcgZW52aXJvbm1lbnQgYW5kIGFyZSANCiAgc3ViamVjdCB0byBjaGFuZ2Ugd2l0aG91dCBub3RpY2UuIENsaWVudCBwbHVnLWlucyB0aGF0IGRpcmVjdGx5IGRlcGVuZCBvbiBhbnl0aGluZyANCiAgb3RoZXIgdGhhbiB3aGF0IGlzIHNwZWNpZmllZCBpbiB0aGUgRWNsaXBzZSBTREsgQVBJIGFyZSBpbmhlcmVudGx5IHVuc3VwcG9ydGFibGUgDQogIGFuZCByZWNlaXZlIG5vIGd1YXJhbnRlZXMgYWJvdXQgY29tcGF0aWJpbGl0eSB3aXRoaW4gYSBzaW5nbGUgcmVsZWFzZSBtdWNoIGxlc3MgDQogIHdpdGggZWFybGllciByZWxlYXNlcy4gUmVmZXIgdG8gPGk+PGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hcnRpY2xlcy9BcnRpY2xlLUFQSSUyMHVzZS9lY2xpcHNlLWFwaS11c2FnZS1ydWxlcy5odG1sIj5Ib3cgDQogIHRvIFVzZSB0aGUgRWNsaXBzZSBBUEk8L2E+PC9pPiBmb3IgaW5mb3JtYXRpb24gYWJvdXQgaG93IHRvIHdyaXRlIGNvbXBsaWFudCANCiAgcGx1Zy1pbnMuIA0KPGgyPiBFY2xpcHNlIFByb2plY3QgU3VicHJvamVjdHM8L2gyPg0KDQpUaGUgRWNsaXBzZSBQcm9qZWN0IGNvbnNpc3RzIG9mIDMgc3VicHJvamVjdHMuIEVhY2ggc3VicHJvamVjdA0KDQppcyBjb3ZlcmVkIGluIGl0cyBvd24gc2VjdGlvbjoNCg0KPGJsb2NrcXVvdGU+PGEgaHJlZj0iI1BsYXRmb3JtIj5FY2xpcHNlIFBsYXRmb3JtPC9hPjxicj4NCiAgPGEgaHJlZj0iI0pEVCI+SkRUIC0gSmF2YSBkZXZlbG9wbWVudCB0b29sczwvYT48YnI+DQogIDxhIGhyZWY9IiNQREUiPlBERSAtIFBsdWctaW4gZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQ8L2E+PC9ibG9ja3F1b3RlPg0KDQo8cD5Gb3IgZWFjaCBzdWJwcm9qZWN0LCB0aGUgaXRlbXMgbGlzdGVkIHJlZmxlY3QgbmV3IGZlYXR1cmVzIG9mIHRoZSBFY2xpcHNlIFBsYXRmb3JtLCANCiAgb3IgYXJlYXMgd2hlcmUgZXhpc3RpbmcgZmVhdHVyZXMgd2lsbCBiZSBzaWduaWZpY2FudGx5IHJld29ya2VkLiBFYWNoIGl0ZW0gaW5kaWNhdGVzIA0KICB0aGUgY29tcG9uZW50cyBhZmZlY3RlZCBieSB0aGF0IHdvcmsgaXRlbSAobWFueSBpdGVtcyBpbnZvbHZlIGNvb3JkaW5hdGVkIGNoYW5nZXMgDQogIHRvIHNldmVyYWwgY29tcG9uZW50cykuDQoNCjxoMz4NCg0KPGEgbmFtZT0iUGxhdGZvcm0iPkVjbGlwc2UgUGxhdGZvcm0gc3VicHJvamVjdDwvYT48L2gzPg0KDQpUaGUgRWNsaXBzZSBQbGF0Zm9ybSBwcm92aWRlcyB0aGUgbW9zdCBmdW5kYW1lbnRhbCBidWlsZGluZyBibG9ja3MuIFRoZSBmb2xsb3dpbmcgaXRlbXMgcmVmbGVjdCBuZXcgZmVhdHVyZXMgb2YgdGhlIEVjbGlwc2UgUGxhdGZvcm0sIG9yIGFyZWFzDQoNCndoZXJlIGV4aXN0aW5nIGZlYXR1cmVzIHdpbGwgYmUgc2lnbmlmaWNhbnRseSByZXdvcmtlZC4NCjxoND5Db21taXR0ZWQgSXRlbXMgKEVjbGlwc2UgUGxhdGZvcm0gc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+DQo8cD4gPGI+SW1wcm92ZSBzdGFydHVwIHRpbWU8L2I+LiZuYnNwOyBQcm9ncmVzcyB3YXMgbWFkZQ0KYXQgaW1wcm92aW5nIHN0YXJ0dXAgdGltZXMgaW4gMi4wOyBob3dldmVyLCBhZGRpdGlvbmFsIGltcHJvdmVtZW50cyBhcmUgbmVlZGVkLiBJbiBhZGRpdGlvbiwgd2UgbmVlZCB0byBpbnZlc3RpZ2F0ZSBkZWZlcnJpbmcgKG9yIHBhcnRpYWxseSBvbWl0dGluZykgdGhlDQpyZWNvdmVyeSBvZiB0aGUgVUkgc3RhdGUuIFtQbGF0Zm9ybSBDb3JlLCBQbGF0Zm9ybSBVSV08L3A+DQo8cD4NCjxiPkFsbG93IHVzZXIgY3VzdG9taXphYmxlDQprZXkgYmluZGluZ3MuPC9iPiZuYnNwOyBFY2xpcHNlIDIuMCBzdXBwb3J0cyBjb25maWd1cmFibGUga2V5IGJpbmRpbmdzLCBidXQgb25seQ0KZm9yIGVkaXRvciBrZXkgYmluZGluZ3MsIGFuZCBvbmx5IGNvbmZpZ3VyZWQgYnkgYSBwbHVnLWluLiBUaGUgdXNlciBzaG91bGQgYmUNCmFibGUgdG8gaW50ZXJhY3RpdmVseSBjdXN0b21pemUgdGhlDQprZXkgYmluZGluZ3MgZm9yIGFsbCB3b3JrYmVuY2ggYWN0aW9ucy4gVGhlcmUgYXJlIGFkZGl0aW9uYWwgY3VzdG9taXphdGlvbiBwb3NzaWJpbGl0aWVzIGluY2x1ZGluZyB2aXNpYmxlIGFjdGlvbnMgYW5kIHBlcnNwZWN0aXZlIGxheW91dC4NCltQbGF0Zm9ybSBVSSwgU1dULCBUZXh0LCBKRFQgVUldPC9wPg0KPHA+IDxiPkltcHJvdmUgdXBkYXRlDQptYW5hZ2VyLjwvYj4gTWFrZSBjb250aW51aW5nIGltcHJvdmVtZW50cyB0byB0aGUgRWNsaXBzZSBpbnN0YWxsIGFuZCB1cGRhdGUNCm1lY2hhbmlzbXMuIEltcHJvdmUgc3VwcG9ydCBmb3IgaW5zdGFsbGluZyBhbmQgdXBkYXRpbmcgbGFyZ2UgcHJvZHVjdHMgbWFraW5nDQp1c2Ugb2YgbmVzdGVkIGZlYXR1cmVzLiBNYWtlIHJlbW90ZSBjb25uZWN0aW9ucyBtb3JlIGNvbmZpZ3VyYWJsZSAoIGNvbm5lY3Rpb24gdXNpbmcgYSBwcm94eSBzZXJ2ZXINCmJlaGluZCBmaXJld2FsbCBhbmQgYXV0aGVudGljYXRpb24pIGFuZCBtb3JlIHJvYnVzdCAodGltZSBvdXRzKS4gW1BsYXRmb3JtIENvcmUsIFBsYXRmb3JtIEluc3RhbGwvVXBkYXRlXTwvcD4NCiAgPHA+IDxiPkVuYWJsZSBEQkNTIG9uIExpbnV4LjwvYj4gU3VwcG9ydCBkb3VibGUtYnl0ZSBjaGFyYWN0ZXJzIG9uIHRoZSBHVEsgYW5kIA0KICAgIE1vdGlmIHdpbmRvdyBzeXN0ZW1zIGV4Y2VwdCBmb3IgU3VTZS4gKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+IA0KICAgIENvbW1pdG1lbnQgZm9yIFN1U2UgREJDUyBzdXBwb3J0IHJlbW92ZWQpIFtTV1RdPC9wPg0KPHA+IDxiPkFkZCB3b3JrYmVuY2gNCmVkaXRvciBuYXZpZ2F0aW9uDQpoaXN0b3J5LjwvYj4gVGhlIHVzZXIgc2hvdWxkIGJlIGFibGUgdG8gbmF2aWdhdGUgYmV0d2VlbiB3b3JrYmVuY2ggZWRpdG9ycyB3aXRoIHdlYiBzdHlsZSBiYWNrL2ZvcndhcmQgYWN0aW9ucy4NCihSZWY6IDxhIGhyZWY9Imh0dHA6Ly9kZXYuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NTcwMCI+YnVnIDU3MDA8L2E+KSZuYnNwOw0KW1BsYXRmb3JtIFVJXTwvcD4NCiAgPHA+IDxiPkltcHJvdmUgQW50IHN1cHBvcnQuPC9iPiBBZGQgc3VwcG9ydCB0byBuYXZpZ2F0ZSBmcm9tIEFudCBlcnJvciBvdXRwdXQgDQogICAgdG8gdGhlIGNvcnJlc3BvbmRpbmcgc291cmNlLiBbUGxhdGZvcm0gVUksIEFudCBDb3JlXTwvcD4NCjwvYmxvY2txdW90ZT4NCjxoND5Qcm9wb3NlZCBJdGVtcyAoRWNsaXBzZSBQbGF0Zm9ybSBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCjxwPjxpPk5vbmUgYXQgdGhpcyB0aW1lLjwvaT48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8aDQ+RGVmZXJyZWQgSXRlbXMgKEVjbGlwc2UgUGxhdGZvcm0gc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+DQogIDxwPjxiPkFkZCBjaGVhdCBzaGVldHM8L2I+LiZuYnNwOyBBIGNoZWF0IHNoZWV0IGlzIGFuIGluc3RhbmNlIG9mIGEgc2ltcGxlIGtpbmQgDQogICAgb2Ygd29ya2Zsb3cgc3VwcG9ydCB1c2VkIHRvIGhlbHAgdGhlIHVzZXIgY2Fycnkgb3V0IGEgc2VxdWVuY2Ugb2Ygc3RlcHMuIEZvciANCiAgICBleGFtcGxlLCAmcXVvdDtjcmVhdGUgYW5kIGRlcGxveSBhIHBsdWctaW4iIGlzIGEgbXVsdGktc3RlcCBwcm9jZXNzIHRoYXQgY291bGQgDQogICAgYmUgbWFkZSBlYXNpZXIgdG8gZm9sbG93IGlmIHRoZXJlIHdhcyBhIGd1aWRlLCBzaW1pbGFyIHRvIGEgcmVjaXBlIHRoYXQgd291bGQgDQogICAgdHJhY2sgdGhlIHVzZXIncyBwcm9ncmVzcyBhbmQgcHJvdmlkZSBib3RoIGRlc2NyaXB0aXZlIHRleHQgdGhhdCBleHBsYWlucyANCiAgICB0aGUgc3RlcHMgaW52b2x2ZWQgYW5kIGludGVncmF0aW9uIHdpdGggRWNsaXBzZSB0byBhdXRvbWF0ZSB0aGUgcHJvY2Vzcy4gVGhlIA0KICAgIFdlbGNvbWUgUGFnZSBlZGl0b3IgaXMgYSBzaW1wbGUgZXhhbXBsZSBvZiBhIGNoZWF0IHNoZWV0LiBQcm92aWRlIGEgc3RhbmRhcmQgDQogICAgQVBJIGZvciBjcmVhdGluZyBjaGVhdCBzaGVldHMuIFtQbGF0Zm9ybSBVSV08L3A+DQogIDxwPiA8Yj5BZGQgdGFibGUgb2YgY29udGVudHMgc3VwcG9ydCB0byB3aXphcmRzLjwvYj4gRXh0ZW5kIHRoZSB3b3JrYmVuY2ggd2l6YXJkIA0KICAgIGZyYW1ld29yayB0byBhbGxvdyBFY2xpcHNlIHdpemFyZCBkZXZlbG9wZXJzIHRvIHByb3ZpZGUgbXVjaCBtb3JlIHN1YnN0YW50aWFsIA0KICAgIGFuZCBzaWduaWZpY2FudCB1c2VyIGZlZWRiYWNrLiBbUGxhdGZvcm0gVUldPC9wPg0KICA8cD4gPGI+U3VwcG9ydCBmbG9hdGluZyB0b29sYmFycyBhbmQgdmlld3MuPC9iPiBBbGxvdyB0aGUgdXNlciB0byBjdXN0b21pemUgdGhlIA0KICAgIHdvcmtiZW5jaCBieSBjcmVhdGluZyBmbG9hdGluZyB0b29sYmFycyBhbmQgdmlld3MuIFtQbGF0Zm9ybSBVSV08L3A+DQogIDxwPiA8Yj5BbGxvdyBlZGl0b3JzIHRvIG9wZW4gZmlsZXMgb3V0c2lkZSB3b3Jrc3BhY2UuPC9iPiBBIGNvbW1vbiByZXF1ZXN0IGlzIA0KICAgIHRvIGJlIGFibGUgdG8gb3BlbiBhIGZpbGUgdGhhdCBpcyBub3QgcGFydCBvZiB0aGUgd29ya3NwYWNlIHVzaW5nIEVjbGlwc2UuIA0KICAgIEluIGFkZGl0aW9uLCBhcHBsaWNhdGlvbnMgd291bGQgbGlrZSB0byBwcm92aWRlIGZpbGUgZXh0ZW5zaW9uIGFzc29jaWF0aW9ucyANCiAgICBzbyB0aGF0IGRvdWJsZS1jbGlja2luZyBvbiBhIGZpbGUgaW4gdGhlIE9TIGRlc2t0b3Agd291bGQgb3BlbiB0aGUgYXNzb2NpYXRlZCANCiAgICBFY2xpcHNlIGVkaXRvci4gVGhlIG9wZXJhdGlvbnMgYW5kIGNhcGFiaWxpdGllcyBhdmFpbGFibGUgb24gdGhlc2UgIm91dHNpZGUgDQogICAgb2YgdGhlIHdvcmtzcGFjZSIgZmlsZXMgd291bGQgbmVlZCB0byBiZSBkZWZpbmVkLiBbUGxhdGZvcm0gVUldPC9wPg0KICA8cD48Yj5JbXByb3ZlIHNlcnZpY2VhYmlsaXR5LiA8L2I+IFByb2dyZXNzIHdhcyBtYWRlIGF0IGltcHJvdmluZyBzZXJ2aWNlYWJpbGl0eSANCiAgICBpbiAyLjA7IGhvd2V2ZXIsIGFkZGl0aW9uYWwgaW1wcm92ZW1lbnRzIGFyZSBuZWVkZWQsIHBhcnRpY3VsYXJseSBpbiBkZWFsaW5nIA0KICAgIHdpdGggZXJyb3IgY29uZGl0aW9ucyBhbmQgcmVwb3J0aW5nIHRoZW0gaW4gYW4gYXBwcm9wcmlhdGUgbWFubmVyLiBbUGxhdGZvcm0gDQogICAgQ29yZSwgU1dULCBQbGF0Zm9ybSBVSV08YnI+DQogICAgPGJyPg0KICAgIDxiPkltcHJvdmUgZmlsZSBlbmNvZGluZyBzdXBwb3J0LjwvYj4gRWNsaXBzZSAyLjAgdXNlcyBhIHNpbmdsZSBnbG9iYWwgZmlsZSANCiAgICBlbmNvZGluZyBzZXR0aW5nIGZvciByZWFkaW5nIGFuZCB3cml0aW5nIGZpbGVzIGluIHRoZSB3b3Jrc3BhY2UuIFRoaXMgaXMgcHJvYmxlbWF0aWM7IA0KICAgIGZvciBleGFtcGxlLCB3aGVuIEphdmEgc291cmNlIGZpbGVzIGluIHRoZSB3b3Jrc3BhY2UgdXNlIE9TIGRlZmF1bHQgZmlsZSBlbmNvZGluZyANCiAgICB3aGlsZSBYTUwgZmlsZXMgaW4gdGhlIHdvcmtzcGFjZSB1c2UgVVRGLTggZmlsZSBlbmNvZGluZy4gVGhlIFBsYXRmb3JtIHNob3VsZCANCiAgICBzdXBwb3J0IG5vbi11bmlmb3JtIGZpbGUgZW5jb2RpbmdzLiAoUmVmOiA8YSBocmVmPSJodHRwOi8vZGV2LmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTUzOTkiPmJ1ZyANCiAgICA1Mzk5PC9hPikgW1BsYXRmb3JtIENvcmUsIFBsYXRmb3JtIFVJLCBUZXh0LCBTZWFyY2gsIENvbXBhcmUsIEpEVCBVSSwgSkRUIA0KICAgIENvcmVdPC9wPg0KICAgIDxiPkltcHJvdmUgU1dUIHN1cHBvcnQgZm9yIHJpZ2h0LXRvLWxlZnQgbGFuZ3VhZ2VzPC9iPi4mbmJzcDtBbGxvdyB0aGUgYXBwcm9wcmlhdGUgDQogICAgd2lkZ2V0IG9yaWVudGF0aW9uIGZvciByaWdodC10by1sZWZ0IGxhbmd1YWdlcy4gW1NXVF0NCgkgIA0KICA8L2Jsb2NrcXVvdGU+DQo8aDQ+UmVqZWN0ZWQgSXRlbXMgKEVjbGlwc2UgUGxhdGZvcm0gc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+DQogIDxwPjxpPk5vbmUgYXQgdGhpcyB0aW1lLjwvaT48L3A+DQo8L2Jsb2NrcXVvdGU+DQoNCg0KDQo8cD4oRW5kIG9mIGl0ZW1zIGZvciBFY2xpcHNlIFBsYXRmb3JtIHN1YnByb2plY3QuKQ0KDQoNCg0KPGgzPiA8YSBuYW1lPSJKRFQiPkphdmEgZGV2ZWxvcG1lbnQgdG9vbHMgDQogIChKRFQpIHN1YnByb2plY3Q8L2E+PC9oMz4NCg0KPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9qZHQvaW5kZXguaHRtbCI+IEphdmEgZGV2ZWxvcG1lbnQgdG9vbHM8L2E+IChKRFQpIA0KaW1wbGVtZW50cyBhIEphdmEgSURFIGJhc2VkIG9uIHRoZSBFY2xpcHNlIFBsYXRmb3JtLiBUaGUgZm9sbG93aW5nIHdvcmsgaXRlbXMgDQpyZWZsZWN0IG5ldyBmZWF0dXJlcyBvZiBKRFQsIG9yIGFyZWFzIHdoZXJlIGV4aXN0aW5nIGZlYXR1cmVzIHdpbGwgYmUgc2lnbmlmaWNhbnRseSANCnJld29ya2VkLiANCjxoND5Db21taXR0ZWQgSXRlbXMgKEVjbGlwc2UgSkRUIHN1YnByb2plY3QpPC9oND4NCjxibG9ja3F1b3RlPg0KPHA+IDxiPlN1cHBvcnQgYnVpbGRpbmcgcHJvamVjdHMgd2l0aCBjaXJjdWxhciBkZXBlbmRlbmNpZXMuPC9iPiZuYnNwOyBTb21lIHVzZXJzIGFyZQ0KZXhwZXJpZW5jaW5nIGRpZmZpY3VsdHkgcGFydGl0aW9uaW5nIHRoZWlyIHdvcmsgaW50byBpbmRlcGVuZGVudGx5LWJ1aWxkYWJsZSBwcm9qZWN0cy4gV2Ugd2FudCB0byBhZGQgYSBtZWNoYW5pc20gdG8gYWxsb3cgbXV0dWFsbHkgZGVwZW5kZW50IHByb2plY3RzIHRvIGJlDQpidWlsdA0Kc3VjY2Vzc2Z1bGx5LCB3aGlsZSBwcmVzZXJ2aW5nIGN1cnJlbnQgcHJvamVjdCBidWlsZCBvcmRlciBiZWhhdmlvci4gKFJlZjogPGEgaHJlZj0iaHR0cDovL2Rldi5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0xMDI2MiI+YnVnDQoxMDI2MjwvYT4pIFtKRFQgQ29yZSwgUGxhdGZvcm0gQ29yZV08L3A+DQogIDxwPiA8Yj5Nb3JlIGZsZXhpYmxlIHByb2plY3QgbGF5b3V0LiZuYnNwOyA8L2I+U3VwcG9ydCBzb3VyY2UgYW5kIG91dHB1dCBmb2xkZXJzIHRoYXQgYXJlIG91dHNpZGUgb2YgdGhlDQogIHdvcmtzcGFjZS4gVGhpcyBsaWtlbHkgcmVxdWlyZXMgUGxhdGZvcm0gQ29yZSBzdXBwb3J0IHNvIHRoYXQgY2hhbmdlcyB0byB0aGVzZQ0KICBmb2xkZXJzIGNhbiBiZSByZWZsZWN0ZWQgaW4gcmVzb3VyY2UgZGVsdGFzLiBbSkRUIENvcmUsIEpEVCBVSSwgUGxhdGZvcm0NCiAgQ29yZSwgUGxhdGZvcm0gVUksIFRlYW1dPC9wPg0KPHA+IDxiPlN1cHBvcnQgbXVsdGktSkFSDQpzeXN0ZW0gbGlicmFyaWVzLjwvYj4gU29tZSBKUkVzIChpbmNsdWRpbmcgTWFjIE9TIFggYW5kIElCTSAxLjQpIHBhY2thZ2UmbmJzcDsNCnRoZSBKYXZhIHN5c3RlbSBjbGFzcyBsaWJyYXJpZXMgaW4gc2V2ZXJhbCBKQVIgZmlsZXMuIEltcHJvdmUgc3VwcG9ydCBmb3Igc3lzdGVtDQpjbGFzcyBsaWJyYXJpZXMgc28gdGhhdCBpdCBpcyBtb3JlIGNvbnZlbmllbnQgdG8gZGV2ZWxvcCBhbmQgcnVuIGFnYWluc3QgdGhlbS4gW0pEVA0KQ29yZSwgSkRUIFVJXTwvcD4NCjxwPiA8Yj5BZGQgbmV3IHJlZmFjdG9yaW5nczwvYj4uIFN1cHBvcnQgYWRkaXRpb25hbA0KcmVmYWN0b3JpbmcgYWN0aW9ucywgaW5jbHVkaW5nIGV4dHJhY3QgaW50ZXJmYWNlLCBhbmQgZXh0cmFjdCBjb25zdGFudC4gW0pEVA0KQ29yZSwgSkRUIFVJXTwvcD4NCjwvYmxvY2txdW90ZT4NCjxoND5Qcm9wb3NlZCBJdGVtcyAoRWNsaXBzZSBKRFQgc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+DQo8cD48aT5Ob25lIGF0IHRoaXMgdGltZS48L2k+PC9wPg0KPC9ibG9ja3F1b3RlPg0KPGg0PkRlZmVycmVkIEl0ZW1zIChFY2xpcHNlIEpEVCBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCiAgPHA+PGk+Tm9uZSBhdCB0aGlzIHRpbWUuPC9pPjwvcD4NCjwvYmxvY2txdW90ZT4NCjxoND5SZWplY3RlZCBJdGVtcyAoRWNsaXBzZSBKRFQgc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+DQogIDxwPjxpPk5vbmUgYXQgdGhpcyB0aW1lLjwvaT48L3A+DQo8L2Jsb2NrcXVvdGU+DQoNCg0KDQo8cD4oRW5kIG9mIGl0ZW1zIGZvciBFY2xpcHNlIEpEVCBzdWJwcm9qZWN0LikNCg0KDQoNCjxoMz4NCg0KPGEgbmFtZT0iUERFIj5QbHVnLWluIGRldmVsb3BtZW50IGVudmlyb25tZW50IChQREUpIHN1YnByb2plY3Q8L2E+PC9oMz4NCg0KVGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvcGRlL2luZGV4Lmh0bWwiPiBwbHVnLWluIGRldmVsb3BtZW50IGVudmlyb25tZW50PC9hPiANCihQREUpIGNvbnNpc3RzIG9mJm5ic3A7dG9vbHMgZm9yIGRldmVsb3BpbmcgcGx1Zy1pbnMgZm9yIHRoZSBFY2xpcHNlIFBsYXRmb3JtLg0KDQpUaGUgZm9sbG93aW5nIHdvcmsgaXRlbXMgcmVmbGVjdCBuZXcgZmVhdHVyZXMgb2YgUERFLCBvciBhcmVhcyB3aGVyZSBleGlzdGluZw0KDQpmZWF0dXJlcyB3aWxsIGJlIHNpZ25pZmljYW50bHkgcmV3b3JrZWQuDQo8aDQ+Q29tbWl0dGVkIEl0ZW1zIChFY2xpcHNlIFBERSBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4gDQogIDxwPiA8Yj5JbXByb3ZlIGJ1aWxkIGNsYXNzIHBhdGggZm9yIHBsdWctaW4gcHJvamVjdHMuPC9iPiBQbHVnLWlucyB0aGF0IG1ha2UgDQogICAgZGlyZWN0IHJlZmVyZW5jZSB0byBKQVIgbGlicmFyaWVzIG9mIHByZXJlcXVpc2l0ZSBwbHVnLWlucyBhcmUgdnVsbmVyYWJsZSANCiAgICB0byB2ZXJzaW9uIGlkcyBpbiBwbHVnLWluIGVtYmVkZGVkIGluIGRpcmVjdG9yeSBuYW1lcy4gVGhlIGFsdGVybmF0aXZlLCB1c2luZyANCiAgICBiaW5hcnkgbGlicmFyeSBwbHVnLWlucyBmb3IgZWFjaCBwcmVyZXF1aXNpdGUgcGx1Zy1pbiwgbGVhZHMgdG8gYSBwcm9mdXNpb24gDQogICAgb2YgcHJvamVjdHMgaW4gdGhlIHdvcmtzcGFjZS4gUERFIHdpbGwgb2ZmZXIgYSB0aGlyZCBhbHRlcm5hdGl2ZSBiYXNlZCBvbiANCiAgICBKRFQgY2xhc3MgcGF0aCBjb250YWluZXJzIHRoYXQgYXZvaWRzIHRoZXNlIHNob3J0Y29taW5ncyBhbmQgaW50ZXJvcGVyYXRlcyANCiAgICB3aXRoIGV4aXN0aW5nIHBsdWctaW4gcHJvamVjdHMuPC9wPg0KICA8cD4gPGI+QWRkIHN1cHBvcnQgZm9yIHVwZGF0ZSBzaXRlcy48L2I+IFNldHRpbmcgdXAgYW4gRWNsaXBzZSB1cGRhdGUgc2l0ZSBhbmQgDQogICAgYnVpbGRpbmcgaXRzIHBsdWctaW5zIGFuZCBmZWF0dXJlcyBpcyBub3Qgc3RyYWlnaHRmb3J3YXJkLiBQREUgd2lsbCBtYWtlIGl0IA0KICAgIGNvbnZlbmllbnQgdG8gZGVmaW5lIHRoZSBsYXlvdXQgb2YgYW4gdXBkYXRlIHNpdGUgYW5kIGNyZWF0ZSB0aGUgdXBkYXRlIHNpdGUncyANCiAgICBjb250ZW50cy48L3A+DQogIDxwPiA8Yj5JbXByb3ZlIHVzYWJpbGl0eS48L2I+IEYxIGhlbHAgZm9yIGFsbCBQREUgZGlhbG9nczsgaW1wcm92ZWQgUERFIGZvcm0gDQogICAgZWRpdG9yczsgaW1wcm92ZWQgcGx1Zy1pbiBtYW5pZmVzdCBlZGl0b3IgRXh0ZW5zaW9ucyBwYWdlOyBtb3JlIHVzZXItZnJpZW5kbHkgDQogICAgc3VwcG9ydCBmb3IgYnVpbGRpbmcgcGx1Zy1pbnMgYW5kIGZlYXR1cmVzLjwvcD4NCjwvYmxvY2txdW90ZT4NCjxoND5Qcm9wb3NlZCBJdGVtcyAoRWNsaXBzZSBQREUgc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+DQogIDxwPjxpPk5vbmUgYXQgdGhpcyB0aW1lLjwvaT48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8aDQ+RGVmZXJyZWQgSXRlbXMgKEVjbGlwc2UgUERFIHN1YnByb2plY3QpPC9oND4NCjxibG9ja3F1b3RlPiANCiAgPHA+IDxiPkFkZCB0ZW1wbGF0ZSBBUEkuPC9iPiBBUEkgZm9yIFBERSB0ZW1wbGF0ZSB3aXphcmRzIHdpbGwgYmUgZGVmaW5lZCwgYWxsb3dpbmcgDQogICAgb3RoZXIgcGx1Zy1pbnMgdG8gY29udHJpYnV0ZSB0ZW1wbGF0ZXMgZm9yIHRoZWlyIGV4dGVuc2lvbiBwb2ludHMuPC9wPg0KPC9ibG9ja3F1b3RlPg0KPGg0PlJlamVjdGVkIEl0ZW1zIChFY2xpcHNlIFBERSBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCiAgPHA+PGk+Tm9uZSBhdCB0aGlzIHRpbWUuPC9pPjwvcD4NCjwvYmxvY2txdW90ZT4NCg0KDQoNCjxwPihFbmQgb2YgaXRlbXMgZm9yIEVjbGlwc2UgUERFIHN1YnByb2plY3QuKQ0KDQo8L2JvZHk+DQoNCjwvaHRtbD4NCg0K